【发布时间】:2020-07-05 15:14:51
【问题描述】:
我到处搜索并花了几个小时尝试各种解决方案,但似乎没有任何效果......正如标题所解释的那样,cron 根本不会在我的 Ubuntu 18.04 机器上执行命令。
我的/etc/crontab 文件如下所示:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
*/1 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
我的测试脚本是一个简单的 echo 'Hello world' 脚本(名为 echo),它包含在 /etc/cron.hourly 中:
#!/bin/sh
echo 'Hello world'
从任何目录调用run-parts /etc/cron.hourly 会按预期将“Hello world”打印到控制台,但该任务似乎从未由cron 执行。我还有一个脚本可以自动备份cron.hourly 中的 MySQL 数据库。这也会在调用run parts 时执行并生成预期的文件,因此这不仅仅是cron 没有显示echo 调用的问题。然而,Cron 显然正在做某事,因为我在 /var/log/syslog 中得到以下输出:
...
Mar 25 03:05:01 ip-172-31-32-110 CRON[10077]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 25 03:06:01 ip-172-31-32-110 CRON[10108]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 25 03:07:01 ip-172-31-32-110 CRON[10122]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 25 03:08:01 ip-172-31-32-110 CRON[10149]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Mar 25 03:09:01 ip-172-31-32-110 CRON[10162]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
我尝试过的其他一些事情:
-
sudo crontab -e并在那里创建一个新的 cron 命令(这会在/var/log/syslog中产生与/etc/crontab相同的输出) - 使用
#!/bin/bash代替#!/bin/sh/ sudo service cron restart- 确保
crontab底部存在空行 -
sudo chmod 755 echo确保文件可执行
这让我非常头疼,所以我非常感谢任何关于此事的帮助!
【问题讨论】: