恢复误删除的crontab计划任务

一般都要备份/var/spool/cron/ 或者/etc/crontab这些数据,如果我们没有备份这个目录,那么就悲剧了么?

其他机器有相似的备份也还可以尝试恢复。

还有有其他的方法,/var/log/messages文件是系统自动轮询记录的日志,同时也是cron进程在读取crontab数据定时执行打印日志的文件。那么我们可以通过分析messages的文件来间接恢复crontab数据。

具体方法就是grep需要找回的用户的crontab的帐号名,同时带上CMD关键字,这样日志的记录执行时间就是你所设定的定时任务时间了。日志中会详细打印执行的命令信息。

1 Nov 10 12:27:11 rh-1 CROND[4427]: (root) CMD ((echo 'hi'))

注意在suse中cron的日志是写入messages的,redhat/centos是单独写入cron这个文件。如何修改日志输出的文件呢?很简单:

vim /etc/rsyslog.conf  修改此文件找到如下行修改右边的输出文件名即可。

# Log cron stuff
cron.*                                                  /var/log/cron

 

cron的文件在centos下类似于这样:

1 [root@rh-1 log]# ll cron*
2 -rw------- 1 root root 16488 Nov 10 12:29 cron
3 -rw------- 1 root root 5494 Oct 14 11:24 cron-20121014
4 -rw------- 1 root root 6537 Oct 21 11:24 cron-20121021
5 -rw------- 1 root root 20148 Oct 28 15:34 cron-20121028
6 -rw------- 1 root root 9051 Nov 4 10:06 cron-20121104

 

那么有人会问,如何找出不是每天都执行的呢?好吧,我的建议就是找出一周或者一个月的messages来分析,我想没有人会设定一条crontab一年才跑一次吧!


多做备份,安全可靠!

你可能感兴趣的:(linux,crontab)