2

sh/bash で記述され、毎日実行され、すべての OS の SCSI/FC マルチパスをチェックするスクリプトがあります。スクリプトが特別な「エラー」文字列を生成し、それを syslog に送信するエラーが発生した場合、監視プログラムがそれを取得し、オペレーターのインシデント レコードを生成します。この特別な「エラー」を syslog に生成する機能をスクリプトに実装する必要があります。エラーが存在する毎日ではなく、週に 1 回です。したがって、そのタイプのロジックを実装する必要があります: 1 日目: エラーが存在する - 特別な「エラー」文字列を生成して syslog に送信し、たとえば作成日で一時ファイルを作成する 2 日目: エラーが存在する - 一時ファイルの作成日を確認し、日付が 7 日未満の場合、特別な「エラー」文字列を生成せず、syslog に送信しません。……8日目:

この種の内部検証を実装する最良の方法は何ですか?

4

1 に答える 1

2

私にとって頭に浮かぶのはこれです:

  1. エラー状態をチェックする
  2. find "error_file_dir" -mtime 7 -name "error_file"ファイルが見つかったかどうかを確認するためにエラーコードを実行して確認してください編集:エラーコードの代わりに返された行数を確認してください
  3. ファイルが見つからなかった場合は、エラーをログに記録し、エラーを error_file_dir/error_file に書き込みます (存在する場合はファイルを上書きします)。

ここで重要なのは、検索する mtime 引数です。過去 7 日間にファイルが変更された場合にのみファイルが返されることが保証されます。その場合、エラーはログに記録されません。

于 2012-12-10T19:03:05.303 に答える