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


64

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

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


30
是crontab -r默认询问是/否,只是我还是不是更有意义?
user1446688 '02

4
我认为提示是/否是一个好主意。特别是因为e&r彼此紧靠..这crontab -e是一个非常常见的cron命令。
JustinP

4
在大约7年的管理工作中,我从未发生过这种情况。现在我很害怕。是时候开始定期备份crontab了。
2015年

7
这已经发生在我身上两次。绝对没有任何提示e进行编辑和r删除是最糟糕的主意!!
DaniG2k 2015年

9
首先要做的是alias crontab=crontab -i。但是crontab应该将默认值设为默认值,因为e&r彼此相邻...
anishsane 2015年

Answers:


49

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

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

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

我无法投票赞成你,但这个答案对我来说很有用。thankx
Teerath库马尔

1
@RajaRassani您可以用对号标记答案是正确的。感谢您的反馈!
2014年

这只是发生在我身上:)总无赖..我使用的虚拟服务器和备份起来regularly..so我要旋转起来备用..并获得删除的crontab
JustinP

+1是直截了当的:}
namezero

您可以尝试在/tmp/crontab.wpMhKS中寻找由编辑器创建的备份(当然名称可能会更改)。它可能不是最新版本,但就我而言,它起到了很大的作用
Jong Bor,

21

如果没有/var/log/cron文件,则可以从中恢复命令(而不是计时)syslog

grep 'CRON.*(yourusername)' /var/log/syslog

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


1
在ubuntu上,文件为/var/log/syslog
Aurelijus Rozenas,2016年

@ Aurelijus Rozenas我不小心将sys添加到应该为/ var / log / syslog的目录路径中,我更正了我的帖子。
喵喵

2
grep 'CRON.*(yourusername)' /var/log/syslog
aidan

@爱丁,你是我的救星!自我注意:服务器空间已满时,切勿编辑crontab文件。
Shadoath

1
太近了!我现在添加了一个cron来每天备份我的crontab :)
SidJ

-5

vi /var/spool/cron/*user*或者如果您是root用户,则vi /var/spool/cron/root


3
这更糟。它编辑假脱机文件,而不通知cron文件已被编辑。当用户crontab由于无文件可编辑而意外删除了他们时,它也将不起作用。
roaima 2015年

我对实际上说明crontab的位置表示反对。我有整个系统的备份,可以轻松地检索我的cronjobs。谢谢!
Cookie
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.