解決策 1:
この質問を書いている過程で、私は自分自身に答えました。だから私は自分自身に「ジェパディスタイル」と答えます。これは、Dennis Williamson によって提供された回答を拡張したものです。
以下は、すべての Cron 出力を /usr/bin/logger
に送信します。 (2>&1
を使用して stdout に変換される stderr を含む) )、nsca_check_disk
の「タグ」で syslog に送信されます .そこから Syslog が処理します。これらのシステム (CentOS と FreeBSD) には既に組み込みのログ ローテーション メカニズムがあるため、/var/log/mycustom.log
のようなログについて心配する必要はありません。 ディスクをいっぱいにします。
*/5 * * * * root /usr/local/nagios/sbin/nsca_check_disk 2>&1 | /usr/bin/logger -t nsca_check_disk
/var/log/messages に、次のようなメッセージが 1 つ追加されました:
Apr 29, 17:40:00 192.168.6.19 nsca_check_disk: 1 data packet(s) sent to host successfully.
私は /usr/bin/logger が好きです。これは、既存の syslog 構成とインフラストラクチャでうまく機能し、ほとんどの Unix ディストリビューションに含まれているためです。ほとんどの *nix ディストリビューションは既にログ ローテーションを行っており、うまく行っています。
解決策 2:
出力をロガーにパイプします。
0 * * * * root /usr/local/nagios/sbin/nsca_check_disk | logger -p local0.notice
編集: あなたの更新は正しい方法のようです。