从 Crontab 运行可执行文件

从 Crontab 运行可执行文件

我在根目录中有一个名为的文件Exim_queue_size。它包含一行:

exim -bpc | mail -s'Exim_queue_size' [email protected]

它已使用 chmod +x 设置其权限,因此可以执行。

如果我运行./Exim_queue_size,它会完美运行并邮寄队列大小计数。

如果我加载并运行 crontab,则使用以下行

0 3,6,9,12,15,18,21,0 * * * /root/Exim_queue_size

我收到一封标题正确但没有附加计数的电子邮件。

请问有什么想法吗?

答案1

只是猜测,但默认情况下 exim 可能位于不在您的路径中的位置。如果未找到 exim,您的脚本将生成一条空白消息。

登录时,您会有各种文件(如 .bashrc)将目录添加到您的路径中。但这些配置文件并非全部在 cron 运行时获取。请在命令行上尝试此操作...

$ which exim
/usr/local/somepath/exim

然后在脚本中使用生成的完整路径......

/usr/local/somepath/exim -bpc | mail -s'Exim_queue_size' [email protected]

答案2

我编辑了可执行文件 Exim_queue_size 来读取

/usr/bin/exim -bpc | 邮件 -s'Exim_queue_size'[电子邮件保护]

按照 Bill Heller 的建议,在凌晨 3 点的 cron 运行中,收到了正确的邮件。问题解决了。谢谢。

相关内容