为什么`crontab -`去掉crontab,可以取消吗?

Red*_*dro 8 bash cron

我匆匆忙忙忘记了ecrontab -e我击中之前Enter

出现一个提示,所以我用Ctrl+关闭D,就像我通常退出输入提示一样。

现在,没有任何警告,我的整个 crontab 都是空的。

为什么?什么逻辑导致这种情况发生?我应该如何关闭除Ctrl+以外的提示D以便不保存任何内容?

rvs*_*rvs 15

您用 stdin 中的内容替换了 crontab,该内容为空。它与crontab < /dev/null.

按 Ctrl+C 可能是一个更好的习惯。

你的 crontab 很可能已经消失了。备份可能位于 中的某个位置/var/spool/cron,但我不知道任何维护备份的 cron 守护程序。/var/spool/cron如果这对您很重要,您应该设置备份。


thr*_*rig 7

Control+C在这种情况下将中止crontab而不是清除当前的 crontab 条目。否则,bare-是 Unix 上的一个常见指示,应该从标准输入读取输入,并Control+D关闭标准输入,导致空的 crontab 文件,因为标准输入上没有任何内容。

一个用户 crontab 条目

@daily crontab -l > $HOME/.cron.`hostname`
Run Code Online (Sandbox Code Playgroud)

通过提供 crontab 数据的备份副本(或者您可以疯狂地进行版本控制,或者您希望备份变得多么复杂),可能有助于应对任何此类未来的 oopsies。