sendmail 在 crontab 中不工作
sendmail not working in crontab
当我尝试从 crontab 执行我的脚本时遇到问题,但是当我尝试手动执行时,它运行得很好。
Crontab 文件
54 * * * * /opt/SP/home/osbadm/scripts/tmp1.sh 2>&1
发送邮件功能
SUBJECT="test"
TO="to@gmail.com" (
echo "TO: $TO"
echo "MIME-Version: 1.0"
echo "Subject: $SUBJECT"
echo "Content-Type: text/html"
cat $EXTRACT_CST_HTML
) | /usr/sbin/sendmail -f from@gmail.com $TO
谁能帮帮我。
您不能在启动子 shell 的 (
之前放置变量赋值。如果您将脚本粘贴到 shellcheck.net,它会告诉您:
SC1036: '(' is invalid here. Did you forget to escape it?
此外,即使可以,它也只会在子进程的环境中设置变量,在处理 sendmail
的参数时它是不可见的。因此,将该作业放在单独的行中。此外,here-doc 是一种将多行输入传递给 sendmail
.
的更简单方法
TO="to@gmail.com"
(
echo "TO: $TO"
echo "MIME-Version: 1.0"
echo "Subject: $SUBJECT"
echo "Content-Type: text/html"
cat $EXTRACT_CST_HTML
) | /usr/sbin/sendmail -f from@gmail.com $TO
当我尝试从 crontab 执行我的脚本时遇到问题,但是当我尝试手动执行时,它运行得很好。
Crontab 文件
54 * * * * /opt/SP/home/osbadm/scripts/tmp1.sh 2>&1
发送邮件功能
SUBJECT="test"
TO="to@gmail.com" (
echo "TO: $TO"
echo "MIME-Version: 1.0"
echo "Subject: $SUBJECT"
echo "Content-Type: text/html"
cat $EXTRACT_CST_HTML
) | /usr/sbin/sendmail -f from@gmail.com $TO
谁能帮帮我。
您不能在启动子 shell 的 (
之前放置变量赋值。如果您将脚本粘贴到 shellcheck.net,它会告诉您:
SC1036: '(' is invalid here. Did you forget to escape it?
此外,即使可以,它也只会在子进程的环境中设置变量,在处理 sendmail
的参数时它是不可见的。因此,将该作业放在单独的行中。此外,here-doc 是一种将多行输入传递给 sendmail
.
TO="to@gmail.com"
(
echo "TO: $TO"
echo "MIME-Version: 1.0"
echo "Subject: $SUBJECT"
echo "Content-Type: text/html"
cat $EXTRACT_CST_HTML
) | /usr/sbin/sendmail -f from@gmail.com $TO