Протестируйте исполнительную команду smartmontools

TL; DR; Есть ли любой способ протестировать exec команда конфигурации smartd похожим способом, поскольку возможно протестировать почтовую команду?

В деталях: Мой вариант использования - то, что я использую monit для контроля моего Сервера Ubuntu 18.04. В моем smartd.conf я говорю smartmontools:

/dev/sda -a -m root -M exec /usr/share/smartmontools/smartd-runner -M test
/dev/sdb -a -m root -M exec /usr/share/smartmontools/smartd-runner

В /etc/smartmontools/run.d/ Мне назвали сценарий notify-monit.sh который при вызове создает файл в /etc/monit/reports содержа отчет smartd. Затем в /etc/monit/scripts У меня есть другой сценарий удара, который вызывается monit как проверка программы, которая возвращается 1, если файл существует или 0, если это не существует. Затем monit проверяет код выхода и предупреждает, если это! = 0.

Этот сценарий немного сложен, таким образом, я хотел бы протестировать его от А до Я. Я запускаю каждый скрипт вручную, и они хорошо работают отдельно, но тем не менее я чувствовал бы себя более в безопасности протестировать их всех в реальном варианте развития событий, запущенном smartd.

Из того, что я понимаю из smartd страницы справочника -M test только попытается послать тестовое электронное письмо, и я вижу в системном журнале, что он делает точно это. И только это. Есть ли любой способ протестировать целый exec цепочка?

1
задан 18 July 2018 в 19:02

1 ответ

После исследования этого глубже я могу подтвердить это -M test выполнения переключателя exec команда.

Я думал, что существует проблема с этим, но на самом деле тест работал правильно. Целый механизм, когда выполнено smartd, просто не работал, как предназначено и не сообщая ни о каких ошибках. Существует проблема с run-parts, который используется smartd-runner. После некоторого рытья я приблизился к этому потоку, где кто-то отправил ссылку на этот отчет об ошибках для run-parts содержа обсуждение, почему это не поддерживает сценарии с точкой на имя.

Было достаточно удалить ".sh", заканчивающийся из notify-monit.sh решить мою проблему. Затем тест сгенерированное предупреждение в monit успешно.

Подсказки для людей, диагностирующих то же:

  • Вы можете временно echo что-то в /usr/share/smartmontools/smartd-runner и затем проверьте на это в /var/log/syslog быть уверенным это smartd вызывает тот сценарий
  • Можно работать run-parts --list --lsbsysinit /etc/smartmontools/run.d быть уверенным это run-parts "видит" Ваш сценарий (сценарии)
0
ответ дан 8 December 2019 в 00:13

Другие вопросы по тегам:

Похожие вопросы: