crontab任务执行不成功的检查步骤

来源:互联网 发布:合肥淘宝代运营公司 编辑:程序博客网 时间:2024/05/14 05:42

crontab -e添加定时任务后,发现任务没有执行,而手动执行脚本可以成功,此时可以通过以下步骤进行排查:

1,检查cron服务是不是在运行
service crond status
在运行的时候会看到crond is running…

如cron不在运行启动服务
Service cron start

2,检查用户
比如以apps用户登录,crontab -e添加的任务就会以apps用户执行
那么检查用apps手动执行脚本是否可以成功;
如果脚本要以root权限去执行,则切到root用户,crontab -e加上任务
或者直接sudo crontab -e添加任务

可以检查日志/var/log/var 看到底是以什么用户去执行的,还可以看error信息
这里写图片描述

3,不要用相对路径,尽量用绝对路径,脚本中先cd到指定路径下,再执行命令最保险,因为相对路径可能会和/etc/crontab中的路径会冲突
这里写图片描述

4,检查系统时间是否为当前时间
修改为当前时间 date -s xx:xx:xx,再date检查一下修改是否成功
修改不成功,关闭linux时间自动同步功能:
service ntpd stop

5,检查任务格式是否正确,一行代表一个任务,每行结束回车
* * * * * command
分钟 小时 日期 月份 星期
0-59 0-23 1-31 1-12 0-7(0和7都代表周日)
特殊字符意义:
* 代表任何
, 代表分隔时段,0 10,20 * * * command 表示10点和20点都执行一次
- 代表一个时间范围 20 8-10 * * * command 表示8点到10点的每个小时的20分钟都执行一次
/n 代表每隔多长时间 /5 * * * * command 表示每隔5分钟执行一次