使用 crontab -r 恢复意外删除的 cron 作业

Tee*_*mar 80 linux cron

我输入crontab -r而不是,crontab -e我的所有cron工作都已被删除。

恢复这些工作的最佳方法是什么(或有什么方法)?

hel*_*ylo 64

crontab -r 删除包含 cron 作业的唯一文件。

因此,如果您没有进行备份,您唯一的恢复选项是:

  • 在 RedHat/CentOS 上,如果您的作业之前已被触发,您可以在 中找到 cron 登录/var/log/cron。该文件将帮助您再次重写作业。
  • 另一种选择是使用文件恢复工具恢复文件。但这不太可能成功,因为系统分区通常很忙,并且相应的扇区可能已经被覆盖。
  • 在 Ubuntu/Debian 上,如果您的任务之前运行过,请尝试 grep CRON /var/log/syslog


Meo*_*eow 25

如果您没有/var/log/cron文件,您可以从syslog.

grep 'CRON.*(yourusername)' /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过查看日期戳找出大多数时间。

  • `grep 'CRON.*(yourusername)' /var/log/syslog` (2认同)
  • 唷,那很接近了!我现在添加了一个 cron 来每天备份我的 crontab :) (2认同)

小智 5

这很糟糕,但是如果你运行crontab -r你的 crontab 就会永远消失。除非您在某处有备份,否则您必须通过 syslog 文件进行 grep 以了解作业正在运行的内容/时间,并重新创建。

避免此类问题的一个好技巧是将以下行添加到 crontab 中:

@daily          crontab -l > $HOME/.crontab
Run Code Online (Sandbox Code Playgroud)

这样,您的 crontab 每天都会备份到$HOME/.crontab,因此,如果您不小心删除了它,则可以使用相对较新的副本,并且可以通过以下方式安装:

@daily          crontab -l > $HOME/.crontab
Run Code Online (Sandbox Code Playgroud)