Мониторинг ошибок при запуске программы проверки пользовательского скрипта

Я получаю синтаксические ошибки, когда пытаюсь проверить статус выхода сценария bash с помощью «программы проверки» monit. Если я запускаю скрипт bash вручную, он не выдает ошибку. Но если я перезагружу monit с моей программой проверки monit в конфигурации, monit выдаст мне ошибки.

Вот мой текущий файл monit .conf --

check program myscript with path "/etc/monit.d/script_to_run.sh"
  if status != 0 then alert

Если я изменю его на это, чтобы убедиться, что monit использует bash для анализа файла...

check program myscript with path "/usr/bash /etc/monit.d/script_to_run.sh"
  if status != 0 then alert

Затем я получаю эту ошибку

Warning: Program does not exist: '"/bin/bash /etc/monit.d/script_to_run.sh"'

Даже тестовый сценарий приводит к ошибкам. Если у меня есть это в script_to_run.sh:

#!/bin/bash
exit 0

Монит будет жаловаться

Error: syntax error 'exit'

Если у меня есть это в script_to_run.sh:

#!/bin/bash
echo "hello"

Монит будет жаловаться

Error: syntax error 'echo'

Для справки: у меня есть monit 5.4, я следовал примеру «проверить программу» в документе man monit, и я могу настроить/использовать monit «проверить процесс…» на том же сервере.


person lemon lime pomelo    schedule 14.06.2013    source источник


Ответы (2)


ок, исправлено. для дальнейшего использования для тех, кто читает это - никогда не помещайте файлы .sh в /etc/monit.d/

в этом была проблема. Я переместил файл .sh в другой каталог, и теперь все в порядке.

person lemon lime pomelo    schedule 17.06.2013

Я использую Amazon AMI в облаке AWS. К сожалению, по умолчанию Amazon поставляет более старую версию Monit — 5.2.5.

https://forums.aws.amazon.com/thread.jspa?threadID=215645

В противном случае они предлагают установить версию monit. Форум Amazon дал этот обходной путь:

sudo yum install -y https://kojipkgs.fedoraproject.org//packages/monit/5.14/1.el6/x86_64/monit-5.14-1.el6.x86_64.rpm
person Mayank Jaiswal    schedule 31.01.2017