如何让我的系统 crontab 获取 URL 并通过电子邮件发送给我?

如何让我的系统 crontab 获取 URL 并通过电子邮件发送给我?

我正在运行带有 Apache 模块的 Ubuntu 12.04。我通过执行以下命令打开 crontabvi /etc/crontab

上面写着与任何其他 crontab 不同,您无需运行“crontab”命令来安装新版本。所以我不必运行 crontab crontab?即使我尝试执行它,我也会收到错误

crontab: No such file or directory

我将其添加到 crontab 文件中(那里有 4 个默认作业):

*/1 * * * * root http://www.mywebsite.com/crondemo.php

此文件应每分钟向我发送一封邮件。脚本本身运行良好,但作业从未运行,我从未收到邮件。

答案1

crontab 条目必须是可执行的 shell 命令。URL 不是可执行的 shell 命令。请尝试改为*/1 * * * * root wget -q -O- http://www.mywebsite.com/crondemo.phpwget是获取 URL 的命令。-q告诉 wget 不要打印进度,并-O-告诉它将获取的 URL 输出到 stdout,然后 cron 将通过电子邮件发送。

如果您想从 cron 接收电子邮件,请确保您MAILTO在 crontab 中正确设置了相关作业,并确保您的系统 MTA 正常工作。您可以使用该mail命令来测试这一点。

的内容/var/log/syslog也可能有助于您诊断 cron 问题,因为即使无法向您发送电子邮件,cron 也会在那里记录慢跑尝试(前提是您的 crontab 已安装并正确提供了作业计划)。

最后,评论是正确的。作为例外,对的更改/etc/crontab会自动生效。

相关内容