Ubuntu 12.04 Server cron定时监控

字体大小: 中小 标准 ->行高大小: 标准

cron服务在Ubuntu12.04 server里是默认安装的。使用crontab -e 命令可以调出你系统中默认的编辑器进行编辑

crontab的命令格式可以参考下面这篇文章,非常不错:http://www.linuxidc.com/Linux/2007-09/7681.htm 与 http://www.linuxidc.com/Linux/2012-08/67836.htm

我的需求是这样,系统中已经安装了nginx服务,启动命令是 service nginx start

由于nginx比较稳定,我选择了每分钟检查一次的定时任务:

*/1 * * * * /home/dist/monitor/nginx_watcher.sh 

*/1 表示一分钟运行一次

其他* 表示无设置

我的脚本文件如下:

  1. File Edit Options Buffers Tools Sh-script Help 
  2. #! /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 
  3.   if [ ! -f $pid_file ]; then 
  4.     echo "----------------" >> $log_file      echo `date` >> $log_file 
  5.     echo "nginx is found stopped, restaring it now" >> $log_file      echo "----------------" >> $log_file 
  6.     service nginx start  fi 

通过检查nginx的进程id文件是否存在来判断nginx是否运行,如果没有运行就调用service nginx start命令。

几个注意点:

1.执行crontab -e 请在root权限下

2.如果设置完定时任务,不放心,可以通过下面的命令重启cron服务, 我的经验是不必。

service cron restart 

3.如果要确保环境变量PATH正确的话,可以在自己的脚本中设置环境变量PATH,然后 export 出来

4.文件路径请用绝对路径

5.下面的定时任务可以帮助我们诊断cron服务的环境变量:

* * * * * env > /tmp/env.output 

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/65131.html