cronによるEメール送信が機能しない

cronによるEメール送信が機能しない

server1からserver2にバックアップするためのrsyncスクリプトがあります。サーバーはCentosタイプのAmazon Linux AMIです。このスクリプトはcrontabを介して毎日実行されます。バックアップが完了したので、cronが実行され、スクリプトが動作しています。ログが生成され、電子メールで当社に送信する必要があります。何らかの理由でこれは起こりません。スクリプトを手動で実行するとメールが送信されるため、メールサーバー(Postfix)が機能し、rsyncスクリプトの末尾にあるメールスクリプトが機能します。以下にrsyncスクリプトを見ることができます。

エコ」:[Eメール保護]> /tmp/rsync_test.log
エコ」ソース:[Eメール保護]>> /tmp/rsync_test.log
echo "タイトル:テストメール>> /tmp/rsync_test.log
エコ"" >> /tmp/rsync_test.log
cat /tmp/rsync_test.log メールを送信する -t |

これがうまくいかない理由と回避策は何ですか?

答え1

Cronジョブは限られた環境で実行されます。特に、PATH 環境変数には cat や sendmail へのパスが含まれない場合があります。

フルパスを指定してみてください。

/bin/cat /tmp/rsync_test.log | /usr/sbin/sendmail -t

これは私の推測です。

正確な理由を知りたい場合は、cronatskの設定時にcrontaskスクリプトのstdoutとstderrをログファイルにキャプチャしてみてください。

*/5 * * * * /your/scripts/task.sh >/somepath/file.log 2>&1

そこからエラーメッセージをお知らせします。

関連情報