Debian 下 cron 的使用方法和常见问题

Bittersweet 转载2016-11-14
本文最后更新于 2380 天前(2016-11-14),其中的信息可能已经有所发展或者不再适用于现阶段。
本文全长 686 字,全部读完大约需要 2 分钟。

一、常用的 cron 命令:

启动 service cron start
关闭 service cron stop
重启 service cron restart
判断 cron 是否在运行:pgrep cron ,如果有在运行则返回进程号。
杀掉 cron 进程:pkill cron ,此法可用在关闭或重启不了 cron 的时候。
配置 cron 定时任务:crontab -e

这个是 root 用户的配置文件,其它用户是对应的用户名命名的文件,所以配置定时任务也可以 vim /var/spool/cron/crontabs/root

后面会讲如何添加定时任务。
配置指定用户的配置文件:crontab -u <用户名称>
查看配置文件:crontab –l

二、下面讲如何配置定时任务

基本格式 :

* * * * * command 几个星号分别为:分 时 日 月 周,最后是要执行的命令。
分:0~59
时:0~23
日:1~31
月:1~12
周:0~6(0表示星期天)
配置文件的一些例子:

0 3 * * * /root/test.sh 每天凌晨 3 点执行 test.sh 文件
* 23-7/1 * * * /root/lnmp restart 晚上11点到早上7点之间,每隔一小时重启 lnmp 套件
*/30 * * * * /usr/sbin/ntpdate 每半小时同步一下时间
0 23 * * 6 /lnmp restart 每星期六的 11 : 00 pm 重启重启 lnmp 套件。
* */1 * * * /usr/bin/mutt -s "hello" test@seeke.net </home/content.txt 每隔 1 小时发送一封电子邮件。

三、注意事项

很多朋友可能在用 cron 的时候会遇到命令不执行的情况。遇到这种情况一般首先是检查 cron 有没有在运行,如果有在运行在重启一下cron,让它重新加载配置试试,再就是检查配置文件有没有格式错误,如果这些都没有问题,那我就讲下我是怎么处理的,把执行语句调频繁一些比如:

*/1 * * * * /root/test.sh

每分钟执行一次测试语句,看看任务有没有执行,如果有被执行,那就是软件,和配置文件都没有问题了,那很可能就是时间对不上的问题了的,比如时区不对,在我的实践中遇到,cron 默认好像是按照天文时间来执行的,即使你的服务器时区是配置正确的也这样,不知为何,也可能是个例,比如我的时间是东 8 区,设定 03:00 点执行的命令,实际是 11:00 点执行的,这是也可以变通下,把时间 +8 设定为 19:00,就可以达到 03:00 执行的目的了。

本文转自网络。