Я хотел бы использовать cron для планирования периодических очисток моего пула ZFS и через некоторое время после завершения очистки отправлять мне отчет о состоянии. Цель этого состоит в том, чтобы поймать любые проблемы без необходимости вручную искать их (толкать, а не тянуть).
Первая часть проста: просто настройте задачу cron для запуска zpool scrub $POOL
с правами root с любым интервалом, приемлемым в моей конкретной ситуации.
Вторая часть, я не совсем уверен, как это сделать. zpool scrub
немедленно возвращается, а затем система запускается в фоновом режиме системой (что, безусловно, является желательным поведением, если очистка инициируется администратором из терминала). zpool status
выдает мне отчет о состоянии и завершает работу (с кодом выхода 0 во время работы скраба; он еще не завершен, поэтому я не знаю, изменится ли состояние выхода после его завершения, но я сомневаюсь в этом). Единственный параметр, задокументированный для zpool scrub, - это -s
«stop scrubbing».
Основная проблема заключается в обнаружении изменения статуса от очистки до законченной очистки . Учитывая это, остальные должны встать на свои места.
В идеале я хотел бы сказать, zpool scrub
чтобы не возвращаться, пока скраб не закончится, но я не вижу способа заставить это сделать это. (Было бы слишком просто просто cron zpool scrub --wait-until-done $POOL; zpool status $POOL
.)
Если это не удастся, я хотел бы спросить систему, выполняется ли в настоящий момент очистка, предпочтительно таким образом, чтобы не слишком рисковать, нарушая обновление или изменение конфигурации, чтобы я мог действовать независимо от того, запущен ли ранее очистка завершена (выполнением состояния zpool, когда состояние очистки меняется с очистки на очистку).
Эта конкретная настройка предназначена для системы рабочей станции, поэтому, хотя инструмент мониторинга, такой как Nagios, вероятно, имеет надстройки, которые могли бы решить проблему, он чувствует себя довольно излишне, устанавливая такой инструмент только для этой одной задачи. Может кто-нибудь предложить решение проблемы с более низкими технологиями?