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

huus2vyu  于 2023-01-08  发布在  Linux
关注(0)|答案(3)|浏览(501)

我已经删除了我的crontab使用crontab -r命令(re是如此接近键盘,没有问题排序的Are you sure? [Y/n]
有趣的是,你必须使用-i选项来启用这个问题-默认情况下应该启用:-)
我的crontab记录肯定丢失了或者有备份文件,我该如何恢复它?
谢谢你。

tzcvj98z

tzcvj98z1#

我也遇到过同样的问题,但是在按crontab -r之前我已经编辑了crontab文件几次,所以我可以在tmp目录中找到以前的版本。

yacmzcpb

yacmzcpb2#

如果你运气好,而且这件事发生得相当近,你可能会在
第一个月
这是您以前的crontab的副本。您可以简单地复制并粘贴它来取回您的cronjobs

vbopmzt1

vbopmzt13#

不幸的是,crontab机制并没有提供一种方法来恢复已删除的或更早版本的crontab文件。也就是说,以下步骤总是值得跟踪的:
1.**检查延迟临时文件:**在编辑crontab文件时,请使用编辑器。默认情况下,此文件为vi,但也可以是由变量EDITORVISUAL定义的文件。根据这些编辑器的设置和您的处理方式,您可能会有延迟备份文件。这些文件的格式可以是filename~#filename或其他格式。请检查可能代表_PATH_TMP/crontab.XXXXXXX备份的文件。_PATH_TMP的值在/usr/include/paths.h中定义。如果该文件不存在,则默认为/tmp。请注意,每次重新引导系统时都会擦除/tmp
1.**检查文件系统快照或克隆:**Crontab将用户crontab文件存储在一个取决于实现的位置。默认情况下,该位置为/var/cron/tabs/$USER,但也可以是/var/spool/cron/$USER或其他任何位置。选中man crontab以显示该位置。该位置永远不会有备份文件。但是,您的系统可能具有配置了快照或克隆的文件系统。这些是在某个时刻获取的文件系统的只读副本。请将其视为文件系统本身的备份。从更经典的文件系统(ext4 ...)开始,BTRFS、OCFS2和ZFS支持快照。
1.**检查实际备份:**也许你很幸运,你的系统管理员为你做了备份。
除了这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

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

相关问题