为什么`crontab -`会删除crontab,可以取消吗?

为什么`crontab -`会删除crontab,可以取消吗?

我匆忙忘记了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如果它对您很重要,您应该设置 的备份。

相关内容