UBuntu 12.04 server cron定时监控
2012-11-01 21:16
253 查看
cron服务在Ubuntu12.04 server里是默认安装的。
使用crontab -e 命令可以调出你系统中默认的编辑器进行编辑
crontab的命令格式可以参考下面这篇文章,非常不错:
http://blog.csdn.net/love__coder/article/details/6890997
Ubuntu站点也提供了手册:
http://wiki.ubuntu.org.cn/CronHowto
我的需求是这样,系统中已经安装了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.如果设置完定时任务,不放心,可以通过下面的命令重启cron服务, 我的经验是不必。
service cron restart
3.如果要确保环境变量PATH正确的话,可以在自己的脚本中设置环境变量PATH,然后 export 出来
4.文件路径请用绝对路径
5.下面的定时任务可以帮助我们诊断cron服务的环境变量:
* * * * * env > /tmp/env.output
6. 查看日志
grep CRON /var/log/syslog
Oct 6 06:47:01 vm1 CRON[13108]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))
Oct 6 07:17:01 vm1 CRON[13352]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 08:17:01 vm1 CRON[13834]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 09:17:01 vm1 CRON[14318]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 10:17:01 vm1 CRON[14804]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 11:17:01 vm1 CRON[15288]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 12:17:01 vm1 CRON[15772]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 13:17:01 vm1 CRON[16255]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 14:17:01 vm1 CRON[17958]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 14:30:01 vm1 CRON[18192]: (root) CMD (/opt/detector/cpu.lsp)
Oct 6 14:30:01 vm1 CRON[18191]: (CRON) info (No MTA installed, discarding output)
7. 几个分隔符号
空格用来分隔以下字段
第1列:分钟 1~59
第2列:小时 1~23
第3列:日期 1~31
第4列:月份 1~12
第5列:星期 0~6(0表示星期日)
第6列:要运行的命令
下面的分隔符号用在一个字段里面:
, 逗号表示一个字段里有多个值,它们是或的关系
* 星号表示连续的时间,或者没有限制
/斜线表示除法,并且余数为0,比如*/5表示每隔5分钟(或5天,5小时),具体发生在0, 5, 10, 15 ...
使用crontab -e 命令可以调出你系统中默认的编辑器进行编辑
crontab的命令格式可以参考下面这篇文章,非常不错:
http://blog.csdn.net/love__coder/article/details/6890997
Ubuntu站点也提供了手册:
http://wiki.ubuntu.org.cn/CronHowto
我的需求是这样,系统中已经安装了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.如果设置完定时任务,不放心,可以通过下面的命令重启cron服务, 我的经验是不必。
service cron restart
3.如果要确保环境变量PATH正确的话,可以在自己的脚本中设置环境变量PATH,然后 export 出来
4.文件路径请用绝对路径
5.下面的定时任务可以帮助我们诊断cron服务的环境变量:
* * * * * env > /tmp/env.output
6. 查看日志
grep CRON /var/log/syslog
Oct 6 06:47:01 vm1 CRON[13108]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))
Oct 6 07:17:01 vm1 CRON[13352]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 08:17:01 vm1 CRON[13834]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 09:17:01 vm1 CRON[14318]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 10:17:01 vm1 CRON[14804]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 11:17:01 vm1 CRON[15288]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 12:17:01 vm1 CRON[15772]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 13:17:01 vm1 CRON[16255]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 14:17:01 vm1 CRON[17958]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Oct 6 14:30:01 vm1 CRON[18192]: (root) CMD (/opt/detector/cpu.lsp)
Oct 6 14:30:01 vm1 CRON[18191]: (CRON) info (No MTA installed, discarding output)
7. 几个分隔符号
空格用来分隔以下字段
第1列:分钟 1~59
第2列:小时 1~23
第3列:日期 1~31
第4列:月份 1~12
第5列:星期 0~6(0表示星期日)
第6列:要运行的命令
下面的分隔符号用在一个字段里面:
, 逗号表示一个字段里有多个值,它们是或的关系
* 星号表示连续的时间,或者没有限制
/斜线表示除法,并且余数为0,比如*/5表示每隔5分钟(或5天,5小时),具体发生在0, 5, 10, 15 ...
相关文章推荐
- UBuntu 12.04 server cron定时监控
- ibm system X3250 M4 服务器安装ubuntu server 12.04
- Ubuntu cron定时执行任务
- [问题解决] ubuntu server12.04 认证的问题
- 手把手教你:Ubuntu下cron定时执行命令无法成功执行的解决方法
- 如何在 Ubuntu 12.04 Server 中安装图形用户界面
- Ubuntu Server 12.04 NFS 文件共享设置
- Ubuntu 12.04 Server OpenStack Havana多节点(OVS+GRE)安装
- Ubuntu定时执行任务---cron
- ubuntu server 12.04上的skyeye1.3.5安装和使用(打造最精确的安装步骤和注意事项)
- 安装Redmine 2.3.0(Ubuntu 12.04 Server)
- Ubuntu 12.04 LTS server版忘记用户密码的解决办法
- 在ubuntu server 上记录和查看cron日志
- Ubuntu Server 12.04 静态IP简洁配置
- Ubuntu-server 12.04 安装JDK
- Ubuntu Server 12.04 静态IP简洁配置
- Ubuntu Server 12.04搭建php环境
- change the username on ubuntu 12.04 server
- (转)ubuntu 12.04搭建Adobe Flash Media Server服务
- 如何在 Ubuntu 12.04 Server 中安装图形用户界面