Cron 仅运行一次而不是每分钟运行一次

Cron 仅运行一次而不是每分钟运行一次

我尝试每分钟运行一个脚本(在运行 Ubuntu 16.04 的 Docker 容器上)。

/etc/echo.sh简单地回应“嗨”这个词

cat /etc/crontab
* * * * *  root /etc/echo.sh > /var/log/cron.log 2>&1


/etc/init.d/cron reload
 * Reloading configuration files for periodic command scheduler cron     [ OK ]

tail -f /var/log/cron.log
hi

打印一次“hi”之后,什么也没有发生。

知道原因吗?

答案1

该脚本确实每分钟运行一次,但>每次都会截断文件。

如果文件不存在,则创建该文件;否则,打开后将其截断为空文件。

(来源)

改为使用>>来追加到文件。即便如此,有时可能很难判断文件是否只增长了一行。这就是为什么在测试类似的东西时最好使用date而不是。echo hi

答案2

*/1 * * * *  root /etc/echo.sh > /var/log/cron.log 2>&1

我认为这就是问题所在。您必须将crontab分钟选项更改为 */1,以便每分钟运行该 bash。

相关内容