如何恢复已删除的 crontab(-r 选项)



我已经使用crontab -r命令删除了我的crontab(re在键盘上非常接近,没有问题Are you sure? [Y/n]

有趣的是,您必须使用-i选项来启用此问题 - 默认情况下应该启用:-)

我的crontab记录肯定丢失了,或者有一些备份文件,我该如何恢复它?

谢谢。

我遇到了同样的问题,但是在按crontab -r之前,我已经多次编辑了crontab文件,因此我可以在tmp目录中找到以前的版本。因此,试试运气,查看一次您的tmp目录。

如果你很幸运,这是最近发生的,你可能会在

/tmp/crontab.<unique_identifier>/crontab

这是您以前的 crontab 的副本。您只需复制并粘贴它即可恢复您的 cronjobs

不幸的是,crontab 机制不提供恢复已删除或早期版本的 crontab 文件的方法。话虽如此,始终值得跟踪以下步骤:

  1. 检查挥之不去的临时:当您编辑 crontab 文件时,您会使用编辑器。默认情况下,这是vi,但它也可能是由变量EDITORVISUAL定义的变量。根据这些编辑器的设置和您的处理方式,您可能会有挥之不去的备份文件。这些可以是filename~#filename或其他任何形式。检查可能表示_PATH_TMP/crontab.XXXXXXX备份的文件。_PATH_TMP的值在/usr/include/paths.h中定义。如果该文件不存在,则默认为/tmp。请注意,每次重新启动系统时都会擦除/tmp
  2. 检查文件系统快照或克隆:Crontab 将用户 crontab 文件存储在依赖于实现的位置。默认情况下,这是/var/cron/tabs/$USER,但也可以是/var/spool/cron/$USER或其他任何内容。检查man crontab以显示位置。那里永远不会有备份文件。但是,您的系统可能具有配置了快照或克隆的文件系统。这些是在某个时刻获取的文件系统的只读副本。将其视为文件系统本身的备份。 从更经典的文件系统(ext4,...)BTRFS、OCFS2 和 ZFS 支持快照。
  3. 检查实际备份:也许您很幸运,您的系统管理员为您进行了备份。

除了这 3 种可能性之外,我看不出您可以恢复 crontab 的方法。

您应该做的最重要的事情是让 cron 备份您的 crontab 文件。您可以使用以下方法每小时执行此操作:

# Example of job definition:
# .----------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7)
# |  |  |  |  |
# *  *  *  *  *   command to be executed
0  *  *  *  *   crontab -l > tmp/crontab.bck

显然,您可以使用脚本使其更加智能,但这已经可以满足您的基本需求。

最新更新