cron服务在Ubuntu12.04 server里是默认安装的。使用crontab -e 命令可以调出你系统中默认的编辑器进行编辑
我的需求是这样,系统中已经安装了nginx服务,启动命令是 service nginx start
由于nginx比较稳定,我选择了每分钟检查一次的定时任务:
*/1 * * * * /home/dist/monitor/nginx_watcher.sh
*/1 表示一分钟运行一次
其他* 表示无设置
我的脚这篇文章件如下:
File Edit Options Buffers Tools Sh-script Help
#! /bin/bash
#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
pid_file=/usr/nginx/logs/nginx.pid
log_file=/home/dist/monitor/watcher.log
if [ ! -f $pid_file ]; then
echo "----------------" >> $log_file
echo `date` >> $log_file
echo "nginx is found stopped, restaring it now" >> $log_file
echo "----------------" >> $log_file
service nginx start
fi
通过检查nginx的进程id文件是否存在来判断nginx是否运行,一旦没有运行就调用service nginx start命令。
几个注意点:
1.执行crontab -e 请在root权限下
2.一旦设置完定时任务,不放心,可以通过接下来的Linux命令重启cron服务, 我的经验是不必。
service cron restart
3.一旦要确保环境变量PATH正确的话,可以在自己的脚本中设置环境变量PATH,然后 export 出来
4.文件路径请用绝对路径
5.接下来的定时任务可以帮助大家诊断cron服务的环境变量:
* * * * * env > /tmp/env.output
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。