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日志,提取執行的內容,并找到時間規律,歡迎提出更好的辦法呀.
新聞熱點
疑難解答