我正在尝试以 root 用户身份运行 cron 作业,但它不会执行。这是我尝试过的...
将作业添加到我的用户 crontab (crontab -e) 并将用户设置为 root ...
17 10 * * * root /etc/cron.daily/cammedia.sh
Run Code Online (Sandbox Code Playgroud)将作业添加到 root 用户 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
Run Code Online (Sandbox Code Playgroud)这是测试运行后运行 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)
Run Code Online (Sandbox Code Playgroud)
建议?
只需完全删除该行。简单地放置一个脚本/etc/cron.daily
就可以让它每天运行一次。您必须将其重命名为不包含.sh
适合 cron.daily 目录的后缀。
如果您不想在 cron.daily 的默认时间运行它,您应该将脚本存储在其他地方,例如/usr/local/bin/cammedia.sh
.
如果你打算这样做,你应该知道只有 root 可以作为另一个用户运行 cron 作业,对于普通用户来说它是无效的。
chmod +x cammedia.sh
在任何情况下都不要忘记通过运行使脚本可执行。
脚本的输出将通过电子邮件发送给您。如果这是不可能的(根据您问题中的日志,它不是),输出将被丢弃。还有其他方法可以获得输出。例如 您可以将以下语句添加到 cammedia 脚本中:
logger "cammedia script run"
Run Code Online (Sandbox Code Playgroud)
你应该在 syslog 中看到一些东西。
关于这个主题的一个很好的阅读是https://help.ubuntu.com/community/CronHowto,它会帮助你解决你的问题。
归档时间: |
|
查看次数: |
3672 次 |
最近记录: |