Tôi muốn sử dụng cron để lên lịch cho các lần tẩy trang định kỳ của nhóm ZFS của mình và trong một thời gian ngắn sau khi quá trình chà kết thúc , hãy gửi email báo cáo trạng thái cho chính tôi. Mục đích của việc này là để nắm bắt bất kỳ vấn đề nào mà không cần phải tự tìm kiếm chúng (đẩy chứ không phải kéo).
Phần đầu tiên rất dễ dàng: chỉ cần thiết lập một công việc định kỳ để chạy zpool scrub $POOL
bằng root ở bất kỳ khoảng thời gian nào là hợp lý trong tình huống cụ thể của tôi.
Phần thứ hai, tôi không chắc lắm về cách làm. zpool scrub
trả về ngay lập tức và sau đó hệ thống chà được chạy trong nền bởi hệ thống (đây chắc chắn là hành vi mong muốn nếu quá trình chà được quản trị viên khởi động từ thiết bị đầu cuối). zpool status
đưa cho tôi một báo cáo trạng thái và thoát (với mã thoát 0 trong khi quá trình chà đang chạy; nó chưa kết thúc nên tôi không biết liệu trạng thái thoát có thay đổi hay không, nhưng tôi nghi ngờ điều đó). Tham số duy nhất được ghi nhận cho quá trình chà zpool là -s
"dừng chà".
Vấn đề chính là phát hiện sự thay đổi trạng thái từ chà sang chà hoàn tất . Cho rằng, phần còn lại sẽ rơi vào vị trí.
Lý tưởng nhất là tôi muốn nói rằng zpool scrub
đừng quay lại cho đến khi quá trình chà kết thúc, nhưng tôi không thấy cách nào để làm điều đó. (Nó sẽ làm cho nó gần như quá dễ dàng chỉ đơn giản là cron zpool scrub --wait-until-done $POOL; zpool status $POOL
.)
Không hiểu điều đó, tôi muốn hỏi hệ thống xem liệu một quá trình chà hiện đang được tiến hành hay không, tốt nhất là theo cách không có quá nhiều rủi ro khi phá vỡ nâng cấp hoặc thay đổi cấu hình, để tôi có thể hành động xem có chạy hay không chà đã kết thúc (bằng cách thực hiện trạng thái zpool khi trạng thái chà chuyển từ chà sang không chà).
Thiết lập cụ thể này dành cho hệ thống máy trạm, vì vậy trong khi một công cụ giám sát như Nagios có thể có các bổ trợ sẽ giải quyết vấn đề, thì việc cài đặt một công cụ như vậy chỉ cho một nhiệm vụ này là quá mức cần thiết. Ai đó có thể đề xuất một giải pháp công nghệ thấp hơn cho vấn đề?