cron 中的 mailx 命令奇怪行为

cron 中的 mailx 命令奇怪行为

我有一个脚本,它将 df 输出重定向到文件,然后将其通过电子邮件发送。邮件命令设置如下:

/usr/bin/mail -s "Subject" -r [email protected] [email protected] < /tmp/diskSpace.txt

当我以 root 用户身份运行此脚本时,一切都正常工作,但当我从 root crontab 运行它时,我遇到了奇怪的行为。在这种情况下,消息已发送,但 /tmp/diskSpace.txt 的内容附加到电子邮件中,而不是作为正文。我甚至尝试复制运行 cron 的 root 环境,如下所示:

env `cat root-env-saved-to-this-file` /bin/bash mailscript.sh

但什么都没变。有什么建议吗?或者我应该用 perl 邮件库来处理这个问题?

答案1

尝试在你的 cron 作业之前添加此项。

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

它将向 cron 用户显示可执行目录的位置。

相关内容