ZFS havuzumun periyodik fırçalarını planlamak için cron kullanmak istiyorum ve fırçalama bittikten kısa bir süre sonra kendime bir durum raporu e-posta ile gönderin. Bunun amacı, herhangi bir problemi manuel olarak aramak zorunda kalmadan yakalamaktır (çekmek yerine itmek).
İlk bölüm kolay: sadece zpool scrub $POOL
benim özel durumumda makul olan herhangi bir aralıkta kök olarak çalışacak bir cron işi kurmak .
İkinci kısım, nasıl yapacağımdan pek emin değilim. zpool scrub
hemen geri döner ve daha sonra fırçalama sistem tarafından arka planda çalıştırılır (fırçalama terminalden bir yönetici tarafından başlatıldığında kesinlikle arzu edilen bir davranıştır). zpool status
bana bir durum raporu verir ve çıkar (fırçalama çalışırken çıkış kodu 0 ile; henüz bitmedi, bu yüzden bittikten sonra çıkış durumunun değişip değişmediğini bilmiyorum, ama şüpheliyim). Zpool fırçalama için belgelenen tek parametre -s
"fırçalamayı durdur" içindir.
Asıl sorun, fırçalamadan bitmiş fırçalamaya kadar durum değişikliğini tespit etmektir . Bu göz önüne alındığında, geri kalanı yerine oturmalıdır.
İdeal olarak, zpool scrub
fırçalama bitene kadar geri dönmemesini söylemek isterdim , ancak bunu yapmanın herhangi bir yolunu göremiyorum. (Basitçe cron yapmak neredeyse çok kolay olurdu zpool scrub --wait-until-done $POOL; zpool status $POOL
.)
Başarısız olursa, sisteme bir ovma işleminin halen devam edip etmediğini, tercihen bir yükseltme veya yapılandırma değişikliğiyle çok fazla risk kırmayacak şekilde sormak istiyorum, böylece daha önce çalışan olup olmadığına göre hareket edebilirim fırçalama bitti (fırçalama durumu fırçalamadan fırçalamaya değil, bir zpool durumu yürüterek).
Bu özel kurulum bir iş istasyonu sistemi içindir, bu yüzden Nagios gibi bir izleme aracı muhtemelen sorunu çözecek eklentilere sahip olsa da, sadece bu tek bir görev için böyle bir araç yüklemek oldukça aşırı hissettiriyor. Birisi soruna daha düşük teknolojili bir çözüm önerebilir mi?