我进入crontab -r
而不是crontab -e
,我的所有cron
工作都被删除了。
恢复这些工作的最佳方法是什么(或者有没有一种方法)?
答案1
crontab -r
删除唯一包含 cron 作业的文件。
因此,如果您没有进行备份,您唯一的恢复选项是:
- 在 RedHat/CentOS 上,如果您的作业之前被触发过,您可以在 中找到 cron 日志
/var/log/cron
。该文件将帮助您再次重写作业。 - 另一种选择是使用文件恢复工具恢复文件。但这不太可能成功,因为系统分区通常很繁忙,并且相应的扇区可能已经被覆盖。
- 在 Ubuntu/Debian 上,如果您的任务之前运行过,请尝试
grep CRON /var/log/syslog
答案2
如果您没有/var/log/cron
文件,您可以从syslog
.
grep 'CRON.*(yourusername)' /var/log/syslog
然后,您可以通过查看日期戳来找出大多数时间。
答案3
这很糟糕,但是如果你运行crontab -r
你的 crontab 就会永远消失。除非您在某处有备份,否则您必须通过 syslog 文件进行 grep 以了解作业正在运行的内容/时间,并重新创建。
避免此类问题的一个好技巧是将以下行添加到您的 crontab 中:
@daily crontab -l > $HOME/.crontab
这样,您的 crontab 每天都会备份到$HOME/.crontab
,因此,如果您不小心删除了它,则可以使用相对较新的副本,并且可以通过以下方式安装:
crontab < $HOME/.crontab
答案4
vi /var/spool/cron/*user*
或者如果你是root
用户那么vi /var/spool/cron/root