【问题标题】:Cron Not Running Tasks Ubuntu 18.04 [closed]Cron 未运行任务 Ubuntu 18.04
【发布时间】: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 确保文件可执行

这让我非常头疼,所以我非常感谢任何关于此事的帮助!

【问题讨论】:

    标签: ubuntu cron


    【解决方案1】:

    我很惊讶这似乎仍然是 18.04 LTS 中的一个问题。

    在我(可能还有其他人)的情况下,我发现了问题。 /etc/crontab 有这个:

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    

    好吧,如果您在系统上查找run-parts,它在/bin 中。我将PATH 更改为:

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/bin
    

    【讨论】:

      【解决方案2】:

      好的,我在发帖之前没有尝试过这个,我感到非常愚蠢。使用crontab -e(不带sudo)并将命令放在那里解决了这个问题。

      如果有人能解释这背后的原因,我仍然很感激。

      【讨论】:

        猜你喜欢
        • 2021-09-01
        • 1970-01-01
        • 2016-06-18
        • 1970-01-01
        • 2020-08-26
        • 2021-11-07
        • 1970-01-01
        • 2014-04-04
        • 1970-01-01
        相关资源
        最近更新 更多