cronの通知先メールアドレスを変更したい
Red Hat Linuxなどのcron設定では、標準で/etc/crontabに「MAILTO=」として、動作結果を特定のアカウントへ通知されるよう記述されている。
ここでの/etc/crontabには、システム自体(root)権限で実行されるものが定義されることから、その通知もroot宛になっている。
# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 0 * * * root run-parts /etc/cron.daily 04 0 * * 0 root run-parts /etc/cron.weekly 06 0 1 * * root run-parts /etc/cron.monthly |
次のように設定すると、実行結果を特定のメールアドレス宛に変更することができる。
# crontab -e MAILTO=xxxx@zdnet.co.jp 0 2 * * * /bin/sh /etc/hogehoge |
ただし、上記は/etc/crontab自体を変更した場合と同じく、実行するアカウントのcron設定すべての宛先に反映される。特定のスケジュールのみを宛先変更させたい場合には、次のように指定すればよい。
# crontab -e 0 2 * * * /bin/sh /etc/hogehoge 2>&1 | Mail xxxx@zdnet.co.jp |