我运行了 crontab -r 而不是 crontab -e,然后删除了我的 crontab 文件。我没有备份,也没有新文件来恢复已删除的文件。
这可能吗?
谢谢,
彼得
答案1
尝试查看 /var/log/cron 以查看已运行的内容,然后尝试从中重新创建 crontab。这很麻烦,但您应该能够恢复之前运行的所有内容。不过,对于较新的项目,运气就没那么好了。祝你好运!
答案2
首先:一定要进行备份!
但是,很容易混淆crontab -r
。crontab -e
我自己就这么做过。
这就是我所做的:
您可以尝试查看 /var/log/cron 并再次构建您的 crontab。
- 查看日志文件
- 接受第一个命令并执行
grep commandname1 /var/log/cron
- 找出命令运行时间背后的系统
- 把这条记录放到你的新 crontab 中
- 执行
cat /var/log/cron | grep -v commandname1
。这将排除您已经覆盖的 command1。 - 执行下一个命令并对其进行 grep
- 找出第二条命令运行时间背后的系统
- 把这个条目放到你的新 crontab 中
- 执行
cat /var/log/cron | grep -v commandname1 | grep -v commandname2
- 重复此操作直到覆盖所有命令
现在您还应该对旧的 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 不同。