Cron 执行旧版本的脚本

Cron 执行旧版本的脚本

我通过以下方式定义 crontab 作业:

sudo crontab -e

正如我所看到的,当我输入时它会被列出:

sudo crontab -l

当我输入时它也会列出:

run-parts --test /etc/cron.monthly

然后我修改了脚本(只有脚本内容,没有脚本名称)。我的脚本发送了一封电子邮件,我修改了电子邮件内容。

不幸的是,由于某种原因,我的脚本的先前版本被执行了(我收到了一封旧电子邮件)。我甚至重新启动了 cron:

sudo service cron restart

但这没用。我尝试删除并再次将提到的脚本添加到 cron,但这也没什么用。

我使用 Ubuntu 12.04.4 LTS

答案1

我在 Ubuntu 18.4 LTS 上遇到了同样的问题。

Cron 保留了我的脚本的旧版本,似乎没有看到脚本已更新。

sudo service cron stop通过执行然后解决这个问题sudo service cron start

sudo service cron restart没有起到作用。

答案2

似乎奇怪的是,该脚本与命令一起列出run-parts/etc/cron.monthly这表明该脚本以某种方式位于该目录中。

也许您在目录中有旧版本的副本/etc/cron.monthly

可能值得删除 crontab 条目,并检查其中没有任何内容/etc/cron.monthly,然后尝试重命名脚本并将其放回 crontab 中以查看它是否正确执行。

如果一切正常,您可以尝试稍后将名称改回来。

答案3

以“root”身份进行文件搜索并找到脚本的所有实例。删除所有不需要的实例。当您只拥有要通过 cron 运行的脚本版本时,请重新启动 cron。

相关内容