我在 Debian 服务器上的 crontab 中注释掉了一行,我猜这是默认存在的,但却导致我每小时收到一次错误电子邮件:
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
但是,错误电子邮件不断出现,就好像它没有被注释掉一样。错误电子邮件:
Subject: Cron <root@(none)> root cd / && run-parts --report /etc/cron.hourly (failed)
/bin/sh: root: not found
有任何想法吗?
答案1
当您说“crontab”时,您没有具体说明。您应该说清楚您指的是哪一个。但是,根据内容,它看起来像/etc/crontab
。由于该文件确实有一个用户字段,因此您收到该错误是没有道理的。我敢打赌,肯定有一个用户 crontab 包含该行。用户 crontab 不包含用户字段。
正确的做法是不要更改 中的那行/etc/crontab
。它可能还运行其他作业。
您可以使用任何编辑器编辑该文件及其子目录中的文件。您可以通过设置环境变量来/etc/cron.*
指定使用时要使用的编辑器。crontab -e
EDITOR
您应该使用crontab -e
编辑用户 crontab(包括 root 用户)。删除用户字段或删除用户crontab 出现的位置(不是/etc/crontab
)。用户 crontab 没有用户字段,但系统 crontab 有。
用户 crontab 位于/var/spool/cron/crontabs
。您可以sudo grep
查找行以找出哪个文件有杂散行。同样,仅使用crontab -u username -e
来编辑用户 crontab。
答案2
检查系统手册页中的 crontab(5) ( man 5 crontab
),尤其是“示例系统 CRON 文件”部分。只有 /etc/crontab 文件包含用户名字段。非系统用户 crontab 不包含此字段。如果要编辑 /etc/crontab,请使用文本编辑器,而不是 crontab(1) 命令。