サーバー1からサーバー2にバックアップを作成するためのrsyncスクリプトがあります。サーバーはCentosタイプのAmazonLinuxAMIです。スクリプトはcrontabを介して毎日実行されます。バックアップが作成されるため、cronが実行され、スクリプトが機能します。ログが作成され、メールで送信する必要があります。これは何らかの理由で起こりません。スクリプトを手動で実行すると、メールが送信されるため、メールサーバー(Postfix)が機能し、rsyncスクリプトの最後にあるメールスクリプトも機能します。以下にrsyncスクリプトを示します。
echo "To:[email protected]"> /tmp/rsync_test.log echo "From:[email protected]" >> /tmp/rsync_test.log echo "件名:Testmail >> /tmp/rsync_test.log echo" ">> /tmp/rsync_test.log cat /tmp/rsync_test.log | sendmail -t
なぜこれが機能しないのですか?どうすれば修正できますか?
cronタスクは限られた環境で実行されます特に、PATHenv変数には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
エラーメッセージが表示されます
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加