crontab任务通常是一个非常重要的东西了,我们通常会要使用crontab来定时执行一些东西了,但有时有朋友会碰到crontab自动没了,那么crontab自动清除要如何解决呢?
背景描述:某次,同事告知有台服务器上的crontab里面的任务全部都没有了,要我帮忙查一下,幸好crontab内容有备份,于是就先恢复了crontab的任务,再具体查一下是由人为操作导致的还是其他情况.
问题排查:检查一下所有的history记录,发现没有crontab -r之类的操作,已知的是只有crontab -r可以直接清空定时任务,当然执行crontab -e编辑也可以清空,但这种情况还是排除啦.
但是发现有crontab之类的操作,大家都知道执行crontab不加任何参数,命令行会卡在那里,但一般不会对crontab里面的内容有影响.
通过询问操作过该服务器的同事及相关日志,大胆做出以下测试.
场景重现:
1.先查看一下机器上的crontab内容.
- $ crontab -l
- * * * * * pwd
2.在命令行模式下,不带任何参数执行一下crontab命令.
$ crontab
3.直接关闭会话,Close或Discount都行,模拟网络质量差,或程序异常中止等情况.
4.再次查看crontab内容,发现内容被清空.
- $ crontab -l
- $ --Vevb.com
预防方案:
crontab定时备份
修改crontab前,先对当前crontab进行备份,添加crontab和crontab -r的alias
Crontab没有备份时如何处理:只能通过分析/var/log/cron日志,提取执行的内容,并找到时间规律,欢迎提出更好的办法呀.
新闻热点
疑难解答