我尝试以 root 用户身份运行 cron 作业,但无法执行。以下是我尝试过的方法...
将作业添加到我的用户 crontab(crontab -e)并将用户设置为 root ...
17 10 * * * root /etc/cron.daily/cammedia.sh
将作业添加到根用户 crontab(sudo crontab -e)并添加一些 PATH...
PATH=/usr/sbin:/usr/bin:/sbin:/bin PATH=/usr/sbin:/usr/bin:/sbin:/etc PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/scott PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc # 0 4 * * * /etc/cron.daily/cammedia.sh
这是测试运行后运行 crontab -l(本地用户帐户)的结果:
May 26 10:17:01 WEBCAM CRON[89901]: (scott) CMD (root /etc/cron.daily/cammedia.sh)
May 26 10:17:01 WEBCAM CRON[89902]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
May 26 10:17:01 WEBCAM CRON[89900]: (CRON) info (No MTA installed, discarding output)
有什么建议吗?
答案1
只需完全删除该行即可。只需放入一个脚本/etc/cron.daily
即可使其每天运行一次。您必须将其重命名为不包含后缀,.sh
以适合 cron.daily 目录。
如果您不想在 cron.daily 的默认时间运行它,您应该将脚本存储在其他地方,例如/usr/local/bin/cammedia.sh
。
如果您打算这样做,您应该知道只有 root 可以以其他用户身份运行 cron 作业,对于普通用户来说这是无效的。
chmod +x cammedia.sh
无论如何,不要忘记通过运行使脚本可执行。
脚本的输出将通过电子邮件发送给您。如果这不可能(并且根据您问题中的日志,这不可能),则输出将被丢弃。还有其他方法可以获取输出。例如,您可以将以下语句添加到 cammedia 脚本中:
logger "cammedia script run"
您应该会在系统日志中看到一些内容。
关于这个主题的一篇好文章是https://help.ubuntu.com/community/CronHowto,它将帮助您解决问题。