Crontab 取消寄信功能
用了那麼久的 Ubuntu,這幾天才知道原來 crontab 執行的時候,會把一些錯誤訊息或是輸出寄發 email,發現這件事純粹是個意外 …
前幾天 Ubuntu 使用 Ssmtp 透過 Gmail 發送 Email 提到小蛙需要寄送登入通知,卻因為 VPS 提供的 IP 在 SPAM 清單中而一直無法成功,所以才找其他方式,使用 ssmtp 透過 Gmail 發送相關通知,在小蛙設定好 ssmtp 送信資料後,小蛙的 Gmail 收到一大堆信 …
一開始小蛙根本不知道發生什麼事,從信中找蛛絲馬跡,看到標題寫 Cron,跟 /var/log/syslog 裡的文字有點像,於是開始 Google crontab 寄信,結果 … 小蛙才疏學淺,竟然一直到現在才知道 crontab 會把有輸出執行結果的或是有問題的,發送 email 給 root,現在想想好像的確有這麼一回事,有時使用到一半會看到「您有新的 mail 在 xxxxx」的字樣,瞬間恍然大悟。
要關掉這功能很簡單,參考 Stop the php5 cron emails,只要在 /etc/crontab 中加入一行設定就可以了。
MAILTO=""
小蛙做了這個設定後,卻還是會收到一個 PHP 執行的錯誤訊息,於是在資料夾中找到 /etc/cron.d/php 也有定期執行的程式,一樣加上「MAILTO=””」,之後,這些訊息就只會輸出在 /var/log/syslog,不會寄發 email 囉!
如果還是有遇到其他的,不妨找找看是不是有漏掉其他 include 進檔案的 crontab 設定喔!