crontabでパイプは使えない

cronで嵌りました。

Defaultの設定では、crontabでpipeを使うことができず、crontabで指定したprogramの標準出力、標準error出力はroot userにmailとして送信されてしまいます。

そのため、普通は以下のようにprogramの標準出力と標準error出力を/dev/nullにredirectします。

0 */1 * * * /usr/bin/hoge > /dev/null 2>&1


crontabでpipeを使用したい場合は、shell scriptなどを別に書いて、crontabではそのscriptを指定すると上手くいきます。

0 */1 * * * /usr/bin/hoge | /usr/bin/fuga > /dev/null 2>&1 # NG

# ↓ 「/usr/bin/hoge | /usr/bin/fuga」を実行するshell script、/usr/local/bin/piyo.shを作成

0 */1 * * * /usr/local/bin/piyo.sh > /dev/null 2>&1 # OK