Ich möchte cron verwenden, um regelmäßige Scrubs meines ZFS-Pools zu planen, und zu einem relativ kurzen Zeitpunkt nach Abschluss des Scrubs einen Statusbericht per E-Mail an mich selbst senden. Dies dient dazu, Probleme zu erkennen, ohne sie manuell suchen zu müssen (drücken statt ziehen).
Der erste Teil ist einfach: Richten Sie einfach einen Cron-Job ein, der zpool scrub $POOLin jedem Intervall, das in meiner speziellen Situation angemessen ist, als Root ausgeführt wird.
Im zweiten Teil bin ich mir nicht ganz so sicher, wie ich es machen soll. zpool scrubkehrt sofort zurück und dann wird das Scrub vom System im Hintergrund ausgeführt (was sicherlich wünschenswert ist, wenn das Scrub von einem Administrator von einem Terminal aus initiiert wird). zpool statusgibt mir einen Statusbericht und beendet das Programm (mit dem Beendigungscode 0, während das Scrub ausgeführt wird; es ist noch nicht abgeschlossen, sodass ich nicht weiß, ob sich der Beendigungsstatus ändert, wenn er abgeschlossen ist, aber ich bezweifle es). Der einzige für zpool scrub dokumentierte Parameter ist -s"stop scrubbing ".
Das Hauptproblem besteht darin, die Statusänderung vom Schrubben zum fertigen Schrubben zu erkennen . Angesichts dessen sollte der Rest an seinen Platz fallen.
Im Idealfall möchte ich sagen zpool scrub, dass ich nicht zurückkehren soll, bis das Peeling beendet ist, aber ich sehe keine Möglichkeit, dies zu erreichen. (Es würde es fast zu einfach machen, einfach zu cronen zpool scrub --wait-until-done $POOL; zpool status $POOL.)
Andernfalls möchte ich das System fragen, ob gerade ein Scrub ausgeführt wird, vorzugsweise auf eine Weise, die nicht zu riskant ist, mit einem Upgrade oder einer Konfigurationsänderung zu brechen, damit ich darauf reagieren kann, ob ein zuvor ausgeführt wird oder nicht Das Scrubben ist beendet (durch Ausführen eines Zpool-Status, wenn der Scrub-Status vom Scrubben zum Nicht-Scrubben wechselt).
Dieses spezielle Setup ist für ein Workstation-System vorgesehen. Während ein Überwachungstool wie Nagios wahrscheinlich Add-Ins enthält, die das Problem lösen würden, ist es ziemlich übertrieben, ein solches Tool nur für diese eine Aufgabe zu installieren. Kann jemand eine Low-Tech-Lösung für das Problem vorschlagen?