一般都要备份/var/spool/cron/ 或者/etc/crontab这些数据,如果我们没有备份这个目录,那么就悲剧了么?
其他机器有相似的备份也还可以尝试恢复。
还有有其他的方法,/var/log/messages文件是系统自动轮询记录的日志,同时也是cron进程在读取crontab数据定时执行打印日志的文件。那么我们可以通过分析messages的文件来间接恢复crontab数据。
具体方法就是grep需要找回的用户的crontab的帐号名,同时带上CMD关键字,这样日志的记录执行时间就是你所设定的定时任务时间了。日志中会详细打印执行的命令信息。
1 |
注意在suse中cron的日志是写入messages的,redhat/centos是单独写入cron这个文件。如何修改日志输出的文件呢?很简单:
vim /etc/rsyslog.conf 修改此文件找到如下行修改右边的输出文件名即可。
# Log cron stuff
cron.* /var/log/cron
cron的文件在centos下类似于这样:
1 |
2 |
3 |
4 |
5 |
6 |
那么有人会问,如何找出不是每天都执行的呢?好吧,我的建议就是找出一周或者一个月的messages来分析,我想没有人会设定一条crontab一年才跑一次吧!
多做备份,安全可靠!