Chciałbym użyć crona, aby zaplanować okresowe szorowanie mojej puli ZFS, i w pewnym rozsądnym czasie po zakończeniu szorowania , wyślij mi e-mailem raport o stanie. Ma to na celu wychwycenie problemów bez konieczności ich ręcznego wyszukiwania (push zamiast pull).
Pierwsza część jest łatwa: wystarczy skonfigurować zadanie crona, aby działało zpool scrub $POOL
jako root w dowolnym przedziale czasu, który jest rozsądny w mojej konkretnej sytuacji.
Druga część, nie jestem do końca pewien, jak to zrobić. zpool scrub
natychmiast wraca, a następnie szorowanie jest uruchamiane w tle przez system (co jest z pewnością pożądanym zachowaniem, jeśli szorowanie jest inicjowane przez administratora z terminala). zpool status
daje mi raport o stanie i wychodzi (z kodem wyjścia 0, gdy szorowanie jest uruchomione; jeszcze się nie skończyło, więc nie wiem, czy status wyjścia zmienia się po zakończeniu, ale wątpię). Jedynym parametrem udokumentowanym dla szorowania zpool jest -s
„zatrzymanie szorowania”.
Głównym problemem jest wykrycie zmiany statusu z szorowania na szorowanie zakończone . Biorąc to pod uwagę, reszta powinna się ułożyć.
Idealnie, chciałbym powiedzieć, zpool scrub
żeby nie wracać, dopóki szorowanie się nie skończy, ale nie widzę żadnego sposobu, aby to zrobić. (Ułatwiłoby to po prostu cron zpool scrub --wait-until-done $POOL; zpool status $POOL
.)
W przeciwnym razie chciałbym zapytać system, czy proces czyszczenia jest w toku, najlepiej w sposób, który nie powoduje zbyt dużego ryzyka zerwania z aktualizacją lub zmianą konfiguracji, dzięki czemu mogę podjąć decyzję, czy poprzednio działający szorowanie zostało zakończone (przez wykonanie statusu zpool, gdy stan szorowania zmienia się z szorowania na brak szorowania).
Ta szczególna konfiguracja dotyczy systemu stacji roboczej, więc chociaż narzędzie do monitorowania, takie jak Nagios, prawdopodobnie zawiera dodatki, które rozwiązałyby problem, wydaje się, że zainstalowanie takiego narzędzia tylko do tego jednego zadania jest przesadą. Czy ktoś może zasugerować rozwiązanie problemu niższej technologii?