最近在ubuntu系统中使用crontab定时任务遇到了问题,现记录下来,希望能够帮助到遇到同样问题的同学。
问题描述:使用crontab做mysql数据库的定时备份,发现到点确没有正常执行任务完成备份操作。
解决思路:
1.使用 service cron status 查看crontab任务是否正常启动 (已正常启动,排除)
2.单独执行定时备份脚本是否有异常 (能正常执行,排除)
3.在备份定时任务前添加一个简单的输出定时任务,发现输出定时任务能正常执行,而备份定时任务没有执行,到此定位到问题产生位置。
解决方法:
为什么简单的输出文件的任务能够执行而定时任务脚本却没有执行? 这时就想到了可能是crontab中执行脚本产生的问题,
最后在bash任务前加上 ./etc/profile; 内容后成功解决问题,之前未加上的时候因为找不到bash执行环境导致定时任务不执行。
正确定时任务如下图所示:
Ps:如果以上步骤没有解决cron任务问题,可换一种添加cron任务的方式(但此种方式不能通过 crontab -l 命令查看定时任务状态)。具体配置见下图: