1

私のcrontabには次のエントリが含まれています

*/2 * * * * /usr/local/bin/some_command &> /dev/null

つまり、some_command を 2 分ごとに実行し、出力を破棄して、cron が出力の電子メールを送信しないようにします。

しかし、1 日に 1 ~ 2 回、/usr/local/bin/some_command の出力を含む電子メールを受け取ります。まるで crontab エントリから &> /dev/null が削除されたかのようです。

from: Cron Daemon <root@hostanme.edu>
to: jsp@hostname.edu
subject:  Cron <jsp@psy58> /usr/local/bin/some_command &> /dev/null
...
[some_command output]

何が原因でしょうか?

繰り返しますが、このコマンドは crond によって 1 日に数百回呼び出されていますが、出力を電子メールで送信するのは 1 回か 2 回だけです。

呼び出される実際のコマンドは次のとおりです。

/usr/local/bin/proctempalert -i='sensors -f | mail -s "`hostname` is HOT" myemail@gmail.com' &> /dev/null

そして、それが正しく実行されていることを知っています (つまり、CPU が過熱しているときに電子メールを受け取ります)。

4

1 に答える 1

2

このセットアップの方法 (コマンドの最後に「&> /dev/null」を使用) は、コマンドの stdout を /dev/null に送信することで、crond がコマンドの出力を電子メールで送信するのを防ぎます。ただし、コマンドから stderr への出力には影響しません。時々、コマンドが何らかのメッセージを標準エラー出力に送信しているのではないかと思います。これが、受信している偽の電子メールで送信されているものです。stdout 出力と stderr 出力の両方を /dev/null に送信するには、コマンドの最後に次を追加します。

/dev/null 2>&1

したがって、全体は次のようになります。 /usr/local/bin/proctempalert -i='sensors -f | mail -s " hostnameis HOT" myemail@gmail.com' > /dev/null 2>&1

于 2013-07-15T17:20:37.693 に答える