我已经删除了我的crontab使用crontab -r命令(r和e是如此接近键盘,没有问题排序的Are you sure? [Y/n]。有趣的是,你必须使用-i选项来启用这个问题-默认情况下应该启用:-)我的crontab记录肯定丢失了或者有备份文件,我该如何恢复它?谢谢你。
crontab
crontab -r
r
e
Are you sure? [Y/n]
-i
tzcvj98z1#
我也遇到过同样的问题,但是在按crontab -r之前我已经编辑了crontab文件几次,所以我可以在tmp目录中找到以前的版本。
yacmzcpb2#
如果你运气好,而且这件事发生得相当近,你可能会在第一个月这是您以前的crontab的副本。您可以简单地复制并粘贴它来取回您的cronjobs
vbopmzt13#
不幸的是,crontab机制并没有提供一种方法来恢复已删除的或更早版本的crontab文件。也就是说,以下步骤总是值得跟踪的:1.**检查延迟临时文件:**在编辑crontab文件时,请使用编辑器。默认情况下,此文件为vi,但也可以是由变量EDITOR或VISUAL定义的文件。根据这些编辑器的设置和您的处理方式,您可能会有延迟备份文件。这些文件的格式可以是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文件,你可以每小时使用:
vi
EDITOR
VISUAL
filename~
#filename
_PATH_TMP/crontab.XXXXXXX
_PATH_TMP
/usr/include/paths.h
/tmp
/var/cron/tabs/$USER
/var/spool/cron/$USER
man 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
显然,您可以使用脚本使其更加智能,但这已经满足了您的基本需求。
3条答案
按热度按时间tzcvj98z1#
我也遇到过同样的问题,但是在按crontab -r之前我已经编辑了crontab文件几次,所以我可以在tmp目录中找到以前的版本。
yacmzcpb2#
如果你运气好,而且这件事发生得相当近,你可能会在
第一个月
这是您以前的crontab的副本。您可以简单地复制并粘贴它来取回您的cronjobs
vbopmzt13#
不幸的是,crontab机制并没有提供一种方法来恢复已删除的或更早版本的crontab文件。也就是说,以下步骤总是值得跟踪的:
1.**检查延迟临时文件:**在编辑crontab文件时,请使用编辑器。默认情况下,此文件为
vi
,但也可以是由变量EDITOR
或VISUAL
定义的文件。根据这些编辑器的设置和您的处理方式,您可能会有延迟备份文件。这些文件的格式可以是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文件,你可以每小时使用:
显然,您可以使用脚本使其更加智能,但这已经满足了您的基本需求。