我匆忙忘记了埃在crontab -e
我打之前Enter。
出现提示,因此我用Ctrl+关闭D,就像我通常退出输入提示一样。
现在,没有任何警告,我的整个 crontab 都是空的。
为什么?什么逻辑导致这种情况发生?我应该如何关闭除Ctrl+之外的提示D,以便不保存任何内容?
答案1
Control+C在这种情况下将中止crontab
并且不会清除当前的 crontab 条目。否则,空文件-
是 Unix 上的常见指示,表示应从标准输入读取输入,并Control+D关闭标准输入,导致 crontab 文件为空,因为标准输入中没有输入任何内容。
用户 crontab 条目如下
@daily crontab -l > $HOME/.cron.`hostname`
通过提供 crontab 数据的备份副本,可以帮助防止任何此类未来错误(或者您可以使用版本控制,或者无论您希望备份有多复杂)。
答案2
您用 stdin 中的内容替换了 crontab,但 stdin 是空的。它本质上与 相同crontab < /dev/null
。
按 Ctrl+C 可能是一个更好的习惯。
您的 crontab 很可能已丢失。备份可能位于 中的某个位置/var/spool/cron
,但我不知道有任何 cron 守护程序会维护备份。/var/spool/cron
如果它对您很重要,您应该设置 的备份。