特定の問題:
郵便集配員フラットファイル内のメーリングリスト購読者を同期するスクリプトが付属しています(同期メンバー(8))。
台本がうまく守られていません。沈黙の法則。たとえば、何もしない場合(たとえば、現在の購読者とフラットファイルが同じ場合)、「Nothing to do」を印刷します。到着するstdout
。
このプログラムを数分ごとに実行すると、すべての出力がログサーバーに書き込まれます(システムログ)その後、毎日ログを含む電子メールを送信します。これには多くの場合、役に立たないメッセージがたくさん含まれています。
この問題を解決するにはいくつかの方法があり、どの方法が最も適切かを知りたいです。
stdout
にパイプを接続します/dev/null
。- 使用rsyslogd フィルタリング特に、これらのメッセージをフィルタリングします。
sync_members
サイレントの法則に従うようにソースコードを修正してください。- ソースコードをコピーし
sync_members
、コピーを修正し、これからそのコピーを使用してください。
各方法は所望の結果を達成するが、各方法には欠点がある。
- どの時点で興味深いことが起こったらどうなりますか
stdout
? - かなりそうだと思います。「きれいではない」そして「ハッカー」解決策、私は沈黙の法則に従わないプログラムがたくさんあるとあえて申し上げます。
- アップデートがあるとどうなりますか?
- 3と同じです。
私はオプション2を選択していますが、システムで誤動作しているすべてのプログラムに対してこれを行う必要がある場合...
どう思いますか?賛成または反対する他のオプションや主張はありますか?この状況のベストプラクティスはありますか? (この問題は新しいものではないと言うことができますか?)
ベストアンサー1
オプション5はありません。出力をリダイレクトするラッパースクリプトを作成し、sync_members
「何もしないこと」を確認してください。
適切な終了コードチェックを使用すると、操作が正しく実行される可能性があります。比較的アップグレードは安全です。 「なし」メッセージが変更されない限り、スクリプトを維持する必要はありません。
このスクリプトでエラー条件を処理する方法を決定できます(つまり、cat
ログファイルを処理するか、より興味深い操作を実行します)。