Linux sendmail 命令在 cron 中不发送邮件
Linux sendmail command not sending mail while in a cron
我正在尝试通过 cronjob 在 bash shell 脚本上 运行 Red-hat Linux 环境中的 sendmail 命令。当手动 运行 并且 shell 运行 中的所有其他作业都正确时,我可以成功 运行 这个脚本,除了邮件 part.I 从未使用过 sendmail并且不确定我是否需要重组它的呈现方式。
我试过mail和mailx。我能够发送电子邮件,但日志文件包含许多奇怪的字符,它将文本格式放入我不想要的电子邮件的 att00001.bin 附件中。 sendmail 命令似乎是唯一一个在手动 运行 时不发送附件的命令。其他 cron 作业正常工作并且能够发送电子邮件,只是它们在日志文件中没有特殊字符。
echo '##################################################'
date
echo '##################################################'
#Run Script and write to log file
/comp/gfb281m.sh > /usr/local/bin/oracle/getload/getload.log 2>&1
#Send log file to developer group
(echo "Subject:GetLoad Shell"; echo; cat
/usr/local/bin/oracle/getload/getload.log) | sendmail -v
exampleEmail@outlook.com exampleEmail2@mail.mil
当 运行 此 cron 作业应将 getload.log 文件的内容发送给 a 组用户。
通过其他来源解决了问题。我没有使用 sendmail 的完整路径。我只是说“| sendmail -v email”而不是 sendmails 完整路径,对我来说是“/usr/sbin/sendmail”。不确定这里是否允许链接,但下面是我找到答案的地方。
https://www.unix.com/red-hat/271632-bash-sendmail-command-not-found.html
crontab 将 PATH
设置为 /usr/bin:/bin
。为了避免输入像 /etc/sbin/sendmail
这样的绝对命令名称,您可以在 crontab 中设置 PATH:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/30 * * * * sendmail user@example.com%subject: Sample email%%Email body%
我正在尝试通过 cronjob 在 bash shell 脚本上 运行 Red-hat Linux 环境中的 sendmail 命令。当手动 运行 并且 shell 运行 中的所有其他作业都正确时,我可以成功 运行 这个脚本,除了邮件 part.I 从未使用过 sendmail并且不确定我是否需要重组它的呈现方式。
我试过mail和mailx。我能够发送电子邮件,但日志文件包含许多奇怪的字符,它将文本格式放入我不想要的电子邮件的 att00001.bin 附件中。 sendmail 命令似乎是唯一一个在手动 运行 时不发送附件的命令。其他 cron 作业正常工作并且能够发送电子邮件,只是它们在日志文件中没有特殊字符。
echo '##################################################'
date
echo '##################################################'
#Run Script and write to log file
/comp/gfb281m.sh > /usr/local/bin/oracle/getload/getload.log 2>&1
#Send log file to developer group
(echo "Subject:GetLoad Shell"; echo; cat
/usr/local/bin/oracle/getload/getload.log) | sendmail -v
exampleEmail@outlook.com exampleEmail2@mail.mil
当 运行 此 cron 作业应将 getload.log 文件的内容发送给 a 组用户。
通过其他来源解决了问题。我没有使用 sendmail 的完整路径。我只是说“| sendmail -v email”而不是 sendmails 完整路径,对我来说是“/usr/sbin/sendmail”。不确定这里是否允许链接,但下面是我找到答案的地方。
https://www.unix.com/red-hat/271632-bash-sendmail-command-not-found.html
crontab 将 PATH
设置为 /usr/bin:/bin
。为了避免输入像 /etc/sbin/sendmail
这样的绝对命令名称,您可以在 crontab 中设置 PATH:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
*/30 * * * * sendmail user@example.com%subject: Sample email%%Email body%