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
そこからエラーメッセージをお知らせします。