Crontab 定义消失

Crontab 定义消失

我在 EC2 上运行 Debian 服务器,几天前我的 crontab 定义突然消失了。毫无征兆地消失了!

有什么想法可以导致这种情况吗?我不怀疑对服务器有任何未经授权的访问。

答案1

不幸的是,丢失用户 crontab 极其容易(当该用户是 root 时几乎同样容易)。

以下是清空方法的几个示例:

crontab ''

echo $emptyvar | crontab -

crontab emptyfile

crontab -l | oops | crontab -

其中oops表示一些命令,这些命令应该在crontab -l使用 替换之前操纵 输出的内容crontab。由于某种原因(“oops”),内容无法通过管道传递。

您应该检查您的脚本和 crontab 中是否有任何试图操纵 root 的 crontab 的行,并确保它们没有做错什么。

此外,对于用户 crontab,当您自己编辑时请始终使用crontab -e

答案2

可能是 /var 所在的分区已满。

如果发生这种情况并且 /tmp 位于另一个分区,您可以使用 crontab -e 编辑临时文件,但是当您完成编辑时,新版本无法复制到 /var/spool/cron/,因此您会得到一个空文件。

我知道这是一个奇怪的情况,但 crontab 没有返回任何错误。

答案3

在 forums.aws.amazon.com 上阅读有关 EC2 的问题。不是专门针对这个问题,而是静态数据在重启后消失。您可能想加入那里的一些讨论或联系 aws 支持。同时,我会编写一些脚本来将我的 crontabs 备份到 S3 或其他地方。

答案4

在尝试编辑 crontab 文件之前,先查看它是否确实存在于 /var/spool/cron/crontab/ 中。它是空的还是正在创建?

你的 EC2 实例已重启吗?

grep -r crontab /etc/*看看是否有东西触碰它们。

相关内容