/etc/hourly.cronには非常に単純なシェルスクリプトが1つしかありません。 Twitterボットを制御するだけです。tweepyを使用してTwitterに投稿する短いpythonスクリプトを実行します。電子メールやsendmailコマンドは含まれません。
私はこれをほぼ1年間問題なくセットアップしましたが、今ではsendmailに関連した奇妙なエラーで失敗しています。
まず、/ var/log/syslogで、私はこれを取得していました:
Dec 30 10:17:01 sarah-ThinkPad-X220 CRON[29527]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Dec 30 10:17:02 sarah-ThinkPad-X220 cron[865]: Please install an MTA on this system if you want to use sendmail!
Dec 30 10:17:02 sarah-ThinkPad-X220 CRON[29526]: (root) MAIL (mailed 2136 bytes of output but got status 0x00ff from MTA#012)
次に、これをデバッグするためにpostfixをインストールし、これを取得しました。
Dec 30 15:17:01 sarah-ThinkPad-X220 CRON[4542]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Dec 30 15:17:03 sarah-ThinkPad-X220 cron[865]: sendmail: fatal: open /etc/postfix/main.cf: No such file or directory
Dec 30 15:17:03 sarah-ThinkPad-X220 postfix/sendmail[4546]: fatal: open /etc/postfix/main.cf: No such file or directory
Dec 30 15:17:03 sarah-ThinkPad-X220 CRON[4541]: (root) MAIL (mailed 250 bytes of output but got status 0x004b from MTA#012)
私はcron初心者であり、MTAが必要な理由がまったくわかりません。任意の助けをいただければ幸いです。
デフォルトでは、cronによって実行されたものによって生成された出力は、crontabの所有者に電子メールで送信されます。これを無効にするには、スクリプトが出力を生成しないことを確認するか、crontabの/dev/null
にリダイレクトするか、crontabの上部にMAILTO=""
を追加します。
Cronファイルの先頭に設定するだけです
MAILTO=""
そして、メールは送信されません