UBuntu 12.04 server使用cron实现定时监控的方法

发布时间:2020-03-13编辑:脚本学堂
本文介绍下,在ubuntu 12.04服务器中,使用cron实现定时监控的方法,有需要的朋友参考学习下。

本节内容:
UBuntu 12.04 server使用cron定时监控

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

crontab的命令格式参考:
Linux crontab命令小结(crontab基础知识)
crontab命令基础与实例
crontab命令的一些例子
Linux Cron计划任务详解
linux安装crontab详解
crontab学习笔记

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命令查看日志
 

复制代码 代码示例:
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)