我没有输入“crontab -e”,而是不小心输入了“crontab”并被卡在了一个进程的中间,所以我中止了这个进程。现在当我去 crontab -e 时,它完全是空白的。这一点都不好。如果我无法取回它,我将需要重写它。
有没有什么办法:
Kei*_*son 14
crontab不带参数从标准输入读取 crontab 文件。例如,您可以使用:
echo "* * * * * run-this-every-minute" | crontab
Run Code Online (Sandbox Code Playgroud)
一旦你破坏了你的 crontab(即crontab -l什么都不显示),就没有什么好方法可以把它找回来。
在我的系统 (Ubuntu 11.04) 上,个人 crontab 存储在/var/spool/cron/crontabs/<USER>- 但这就是你破坏的东西,所以这对你没有任何好处。(路径在您的系统上可能不同。)
我看到了/var/log/syslog由cron;执行的命令的条目 您也许可以从中重建您的 crontab(或您的系统的等效项,如果有的话),但这会很乏味。
这是我为避免此类问题所做的工作:
我将 crontab 保存在一个单独的文件中,并在源代码控制系统中维护。我只通过运行安装它
crontab filename
Run Code Online (Sandbox Code Playgroud)
我从不使用crontab -e. 如果我不小心破坏了我的 crontab,我可以从文件中重新加载它。(嗯,几乎从来没有;我有时会crontab -e进行临时更改,因为我知道以后可以恢复当前版本。)
小智 5
我制作了一个 PHP 脚本,可以根据日志完全恢复您的 crontab。
它输出用户在上周运行的每个 cron 命令的单个实例。
我把它放在这里
https://github.com/dangreenisrael/recover_crontab
这是一个示例输出:
perl ~/sorttv/sorttv.pl
/usr/local/bin/flexget
bash ~/scripts/sort_sports.sh
~/scripts/play_recently_added.sh
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21735 次 |
| 最近记录: |