私のcrontabには次のことがあります。
0 */4 * * * /usr/bin/mysqldump -u root -p'PASSWORD' --all-databases | /bin/gzip -9 > /home/USER/_mysql_backup/`date "+\%F--\%H-\%M"`.databases.sql.gz ; rm -f /home/USER/_mysql_backup/`date '+\%F' --date '1 week ago'`.databases.sql.gz >/dev/null 2>&1
問題は、それが私のシステムログをいっぱいにすることです。これを追加すると、ジョブは記録されないと思います>/dev/null 2>&1
。しかし、前のコマンドを実行する前に追加する必要がありますか;
?
答え1
crontabに命令を書くと何もないstdoutに変換すると、cronはその出力を取得してメールで送信しようとします。明らかにMTAがインストールされていないため、cronはメールメッセージを送信できず、ログファイルに失敗を記録します。
cronジョブが標準出力に書き込んでいることを確認するには、MTAをインストールする必要があります。 cronは出力をメールで送信し、メーリングが成功するため、何も記録しません。
出力を見たくない場合は、/dev/nullにリダイレクトしてください。しかし、いくつかのcronジョブが予期せず出力を生成しても、cronが満足するようにMTAを設定します。
crond(8) マンページに詳細が記載されています。