删除cron选项卡文件,并需要恢复它

我运行crontab -r而不是crontab -e并删除了我的crontab文件。 我没有备份和新的恢复被删除的文件。

这可能吗?

谢谢,

彼得

尝试查看/ var / log / cron以查看运行的内容,然后尝试从中重新创buildcrontab。 它凌乱,但你应该能够恢复以前运行的一切。 虽然没有那么多新的项目运气。 祝你好运!

首先:总是做备份!

但是,将crontab -rcrontab -e混合起来很容易。 我只是自己做的。

这就是我所做的:

你可以尝试查看/ var / log / cron并再次构build你的crontab。

  1. 看看日志文件
  2. 取第一个命令,并执行grep commandname1 /var/log/cron
  3. 找出命令运行的时代背后的系统
  4. 把这个条目放到你的新的crontab中
  5. 执行cat /var/log/cron | grep -v commandname1 cat /var/log/cron | grep -v commandname1 。 这将排除你已经覆盖的command1。
  6. 采取下一个命令和grep的
  7. 找出第二个命令运行的时代背后的系统
  8. 把这个条目放到你的新的crontab中
  9. 执行cat /var/log/cron | grep -v commandname1 | grep -v commandname2 cat /var/log/cron | grep -v commandname1 | grep -v commandname2
  10. 重复,直到你覆盖所有的命令

现在,您还应该在较早的cronlog上执行grep来查找一个月内只能运行一次的作业。

完整的crontab恢复脚本

我做了一个PHP脚本,根据日志对crontab进行完全恢复。

它输出上周用户运行的每个cron命令的单个实例。

我把它放在这里

https://github.com/dangreenisrael/recover_crontab

这是一个示例输出:

 perl ~/sorttv/sorttv.pl /usr/local/bin/flexget bash ~/scripts/sort_sports.sh ~/scripts/play_recently_added.sh 

你有select,但没有一个是特别漂亮的。 如果你没有想到,如果你在开发机器上有最新版本,你可以从那里复制它…我只是说,因为我经常忘记可能在其他机器上的副本,所以我假设你已经尝试过了。

如果您的文件过于自定义以至于无法重build,那么您总是可以尝试一些低级别的取证。 尝试search基于sleuthkit和UFS资源pipe​​理器的教程。 使用这些工具的人们在易用性和成功率方面有很大程度的不同,正如往常一样,YMMV。

我不这么认为。 现在是时候开始备份这个重要的文件(所有其他文件在/ etc / var / spool / home中)。

呃不能发表对原始问题的评论,但是一位同事刚给我看了一个很棒的工具:在你用于crontab任何.profile创build一个别名为crontab -i-i标志在删除之前要求确认。

所以,如果你使用crontab -e ,它将像往常一样进行编辑,但是如果你不小心做了crontab -r你会得到确认提示。