Ubuntu18:cronの実行結果のメールを止める方法





Ubuntuには、定期的にプログラムやスクリプトを実行する「cron」という仕組みがあります。cronは、実行後にcronを設定した人に向けてメールが送信されるようになっています。しかし、色々な事情でその確認メールを送信したくない場合があります。

Linuxのディストリビューションやバージョンによって微妙に違う、という問題

で、色々検索してみると「crontabを編集」とか「/var/spool/usersを編集」とか「出力を /dev/null にリダイレクト」など、古い方法は見つかるのですが、Ubuntu18での方法は見当たらなかったので(というか、Ubuntu18に限らず大体同じなんですが)記事にしておくことにしました。

結論としては「MAILTOに空文字を設定する」でメールは止まる

cronファイルをviやvimなどのテキストエディタで開いて、下記のようにします。

<変更前>

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

0 */3 * * * root (何らかのコマンド) > /dev/null

<変更後>

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""

0 */3 * * * root (何らかのコマンド) > /dev/null

要するに「MAILTO=””」があれば、メール送信先が空になるのでメールが送られないという話です。

ただ、これだとエラーが起こった時にもメールは来ないので、初めはMAILTOに動作確認用メールアドレスを設定しておいて、正しく動作していることが確認されてから、あとで空文字にするのがいいかなと思います。

 


質問・コメントなどあると嬉しいです