crontab定时任务监控服务进程

背景:在做性能测试时,需要监控kafka消费情况以及nginx接收到的请求,于是打算用定时任务每分钟去打印相关数据,再做分析。

后来利用定时任务来监控服务的运行,因为我们服务实在有点多,把重点的服务可以监控起来(实际通过supervisor也可以),举个例子:


#每天23点59分执行opt下面sh脚本
59 23 * * * bash /opt/check_tracker.sh
#!/bin/bash
num=`ps -ef|grep "mysqld" |grep -v grep |wc -l`

if [ "$num" = 1 ];then
        echo -e "mysql已启动"
else
        echo -e "mysql未启动,即将执行启动命令"
        service mysql start
fi

 cron常用命令:

#编辑定时任务
crontab -e
#启动定时任务(ubuntu)
service cron start
#停止定时任务
service cron stop
#基本语法
* * * * * command
分时日月周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

#举例
30 21 * * * /usr/local/etc/rc.d/lighttpd restart   //每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart  //每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart  //每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart   //每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart   //每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart   //每一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart    //晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart    //每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart     //一月一号的4点重启apache

*/30 * * * * /usr/sbin/ntpdate 210.72.145.44     //每半小时同步一下时间

 

posted @ 2022-07-08 16:41  千君君  阅读(448)  评论(0编辑  收藏  举报