錯(cuò)誤現(xiàn)象
誤執(zhí)行**導(dǎo)致定時(shí)任務(wù)被刪除
[root@ennan ~]# crontab -r
no crontab for root
[root@ennan ~]# crontab -l
no crontab for root
解決思路
查看crontab的日志握恳,根據(jù)日志的規(guī)律推算出原有的定時(shí)任務(wù)
[root@ennan ~]# cat /var/log/cron
Aug 26 20:20:01 ennan CROND[8686]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null)
Aug 26 20:21:01 ennan CROND[8699]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:22:01 ennan CROND[8707]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:23:01 ennan CROND[8715]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:24:01 ennan CROND[8723]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:25:01 ennan CROND[8733]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:25:01 ennan CROND[8734]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null)
Aug 26 20:26:01 ennan CROND[8746]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:27:01 ennan CROND[8754]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:28:01 ennan CROND[8762]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:29:01 ennan CROND[8770]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:30:01 ennan CROND[8783]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null)
Aug 26 20:30:01 ennan CROND[8782]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Aug 26 20:30:01 ennan CROND[8784]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:31:01 ennan CROND[8798]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:32:01 ennan CROND[8806]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:33:01 ennan CROND[8814]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:34:01 ennan CROND[8822]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:35:01 ennan CROND[8833]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null)
Aug 26 20:35:01 ennan CROND[8832]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:36:01 ennan CROND[8845]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:37:01 ennan CROND[8853]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:38:01 ennan CROND[8861]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:39:01 ennan CROND[8869]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:40:01 ennan CROND[8881]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Aug 26 20:40:01 ennan CROND[8884]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null)
Aug 26 20:40:01 ennan CROND[8886]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:41:01 ennan CROND[8897]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:42:02 ennan CROND[8906]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:43:01 ennan CROND[8914]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:44:01 ennan CROND[8922]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:45:01 ennan CROND[8932]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null)
Aug 26 20:45:01 ennan CROND[8933]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:45:57 ennan crontab[8942]: (root) BEGIN EDIT (root)
Aug 26 20:46:01 ennan CROND[8946]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:47:01 ennan CROND[8954]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
Aug 26 20:48:01 ennan CROND[8964]: (root) CMD (/bin/bash /root/ip_data.sh &> /dev/null)
由日志分析可得出:
每分鐘執(zhí)行一次/bin/bash /root/ip_data.sh &> /dev/null
每5分鐘執(zhí)行一次(/usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null
真實(shí)的生成環(huán)境中,需要仔細(xì)的查看日志捺僻,且要跨較長(zhǎng)的時(shí)間周期乡洼,盡最大程度的恢復(fù)。
故障恢復(fù)
根據(jù)推測(cè)結(jié)果匕坯,恢復(fù)定時(shí)任務(wù)
[root@ennan ~]# crontab -l
*/1 * * * * /bin/bash /root/ip_data.sh &> /dev/null
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null
其實(shí)定時(shí)任務(wù)存儲(chǔ)于var/spool/cron/{usernmae}中束昵,為了防止此類(lèi)錯(cuò)誤出現(xiàn),可提前將這個(gè)文件備份
[root@ennan ~]# cat /var/spool/cron/root
*/1 * * * * /bin/bash /root/ip_data.sh &> /dev/null
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null