删除了 cron tab 文件并需要恢复它

删除了 cron tab 文件并需要恢复它

我运行了 crontab -r 而不是 crontab -e,然后删除了我的 crontab 文件。我没有备份,也没有新文件来恢复已删除的文件。

这可能吗?

谢谢,

彼得

答案1

尝试查看 /var/log/cron 以查看已运行的内容,然后尝试从中重新创建 crontab。这很麻烦,但您应该能够恢复之前运行的所有内容。不过,对于较新的项目,运气就没那么好了。祝你好运!

答案2

首先:一定要进行备份!

但是,很容易混淆crontab -rcrontab -e我自己就这么做过。

这就是我所做的:

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

  1. 查看日志文件
  2. 接受第一个命令并执行grep commandname1 /var/log/cron
  3. 找出命令运行时间背后的系统
  4. 把这条记录放到你的新 crontab 中
  5. 执行cat /var/log/cron | grep -v commandname1。这将排除您已经覆盖的 command1。
  6. 执行下一个命令并对其进行 grep
  7. 找出第二条命令运行时间背后的系统
  8. 把这个条目放到你的新 crontab 中
  9. 执行cat /var/log/cron | grep -v commandname1 | grep -v commandname2
  10. 重复此操作直到覆盖所有命令

现在您还应该对旧的 cronlogs 执行 grep 来找出可能一个月只运行一次的作业。

答案3

完整 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

答案4

您有多种选择,但没有一种特别好。如果您还没有想到,如果您在开发机器上有一个最新版本,您可以从那里复制它... 我之所以这么说,是因为我经常忘记其他机器上可能有的副本,所以我假设您已经尝试过了。

如果你的文件定制程度过高,无法简单地重建它,你可以尝试一些低级取证。试着用谷歌搜索基于侦探工具和 UFS Explorer。使用这些工具的人发现,易用性和成功率存在很大差异,因此,通常来说,YMMV 不同。

相关内容