注意每个 * 必须有一个空格
* * * * *command分 时 日 月 周 命令第1列表示分钟1~59 每分钟用*或者 */1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星期0~6(0表示星期天)第6列要运行的命令
定时任务没有启动的排查
1、先手动执行定时任务以此来判断脚本是否有问题。
2、确认服务器是否开启定时任务计划服务
查看状态:service crond status 未启动时启动:service crond start
3、检查定时任务配置的语法
crontab -l
如果出现了crontab定时任务不执行的情况,首先需要定位问题,那么就需要通过日志来确定问题所在
tail -f /var/log/cron
对于root用户该邮件记录位于/var/spool/mail/root,通过以下命令可以查看最近的crontab执行情况。
tail -f /var/spool/mail/root
mail邮件一般只会记录脚本执行成功与否,如果执行失败,无法给出进一步的错误信息,这时需要我们将语句执行的错误信息重定向至文件中,这样可以很方便的查看错误信息。下面就给出了一个简单的例子
0 6 * * * /root/script/ss.sh >> /root/for_crontab/mylog.log 2>&1
上述语句表示把错误输出和标准输出都输出到mylog.log中,在执行的时候会将命令执行的相关信息记录至mylog.log文件中。
常见错误:
使用中遇到 command not found
但是直接执行命令是成功的,应该是环境变量有误
可以将命令路径写成绝对路径。
目前不知道啥更好办法