ZFSスクラブが*完了*したらコマンドを実行する方法は?
cronを使用してZFSプールの定期的なスクラブをスケジュールし、スクラブが完了してからしばらくしてから、ステータスレポートを自分宛にメールで送信したいと考えています。これの目的は、手動でそれらを探すことなく(プルではなくプッシュ)、問題をキャッチすることです。 最初の部分は簡単ですzpool scrub $POOL。私の特定の状況で妥当な間隔でrootとして実行されるようにcronジョブを設定するだけです。 第二部、どうすればいいのかよくわかりません。zpool scrubすぐに戻り、スクラブはシステムによってバックグラウンドで実行されます(スクラブが端末から管理者によって開始された場合、これは確かに望ましい動作です)。zpool statusステータスレポートを表示して終了します(スクラブの実行中は終了コード0で終了します。まだ終了していないため、終了ステータスが変更されたかどうかはわかりませんが、疑います)。zpool scrubについて文書化されている唯一のパラメーターは-s、「スクラブの停止」用です。 主な問題は、からのステータスの変更を検出しているスクラブに仕上がっスクラブ。それが与えられれば、残りは適切な場所に収まるはずです。 理想的にはzpool scrub、スクラブが終了するまで戻らないようにしたいのですが、それを行う方法がありません。(単純にcronを実行するのはほとんど簡単すぎるでしょうzpool scrub --wait-until-done $POOL; zpool status $POOL。) それができない場合は、システムに、スクラブが現在進行中かどうかを確認します。できれば、アップグレードまたは構成の変更によってリスクが大幅に低下しないようにして、以前に実行されているかどうかを確認できるようにします。スクラブが終了しました(スクラブステータスがスクラブから非スクラブに変わったときにzpoolステータスを実行することにより)。 この特定のセットアップはワークステーションシステム用であるため、Nagiosなどの監視ツールには問題を解決するアドインが含まれている可能性がありますが、この1つのタスクだけにこのようなツールをインストールするのはやり過ぎです。誰かが問題に対するより低い技術の解決策を提案できますか?