最近公司的crontab的任务不执行,想查找个究竟。使用方法如下:
看日志 /var/adm/cron/log tail log 文件查看
看cron进程是否存在
ps -ef|grep cron
test_db:/>#ps -ef|grep cron
root 708802 676096 0 22:26:18 pts/0 0:00 grep cron
root 749830 1 0 22:06:50 - 0:00 /usr/sbin/cron
test_db:/>#kill -9 749830
虽然kill掉进程,但cron进程竟然自动重启了!
test_db:/>#ps -ef|grep cron
root 708806 676096 0 22:26:40 pts/0 0:00 grep cron
root 749832 1 0 22:26:33 - 0:00 /usr/sbin/cron
在inittab中定义了cron进程的运行方式
test_db:/>#cat /etc/inittab | grep cron
cron:23456789:respawn:/usr/sbin/cron
为什么它会自动启动,因为它受init进程的监视,cron进程属于操作系统后台进程,如果它不存在了,会被init进程重新启动,无须我们手动启动
test_db:/>#ps -ef|grep init
root 1 0 0 Sep 20 - 0:37 /etc/init
root 331876 676096 0 22:34:41 pts/0 0:00 grep init
如果将cron:23456789:respawn:/usr/sbin/cron中的respawn设置为OFF则不会自动重新启动进程。
crontab格式:
第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令
下面是crontab的格式:
分 时 日 月 星期 要运行的命令
这里有crontab文件条目的一些例子:
30 21 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/apache/bin/apachectl restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/apache/bin/apachectl restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/apache/bin/apachectl restart
每一小时重启apache
* 23-7/1 * * * /usr/local/apache/bin/apachectl restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/apache/bin/apachectl restart
一月一号的4点重启apache
crontab命令:
crontab查看,编辑,重启,停止,开始
crontab -[l,e] service crond [restart,stop,start]
命令行尾部需增加 >/dev/null 2>&1
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10670663/viewspace-618030/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10670663/viewspace-618030/