Я запускаю сервер Ubuntu 14.04. Я хочу автоматически получать оповещения Monit по электронной почте. Набор текста /usr/bin/monitcron.sh
как root все нормально работает вручную. Я попробовал cron с Rsync в качестве теста. Cron отлично работает. Но как только я использую его для Monit, он больше не выполняет свою работу, кроме случаев, когда я запускаю его вручную.
В моем скрипте monitcron.sh есть:
#!/bin/bash
service monit reload
РЕДАКТИРОВАТЬ: я пробовал /etc/init.d/monit reload
. То же самое. Это работает вручную, но не с cron.
В моем crontab -e -u root
, Я пробовал запустить:
* * * * * /usr/bin/monitcron.sh
Но не повезло.
Есть идеи или причины, по которым сценарий работает для Rsync, а не для Monit? Спасибо.
РЕДАКТИРОВАТЬ: Мой /var/log/syslog
показывает:
Feb 20 21:42:01 www postfix/local[5289]: A7F742490E: to=<root@www.home>, orig_to=<root>, relay=local, delay=0.13, delays=0.09/0/0/0.03, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Feb 20 21:42:01 www postfix/qmgr[1151]: A7F742490E: removed
Feb 20 21:43:01 www CRON[6074]: (root) CMD (/usr/bin/monitcron.sh)
Feb 20 21:43:01 www postfix/pickup[6069]: B71782490E: uid=0 from=<root>
Feb 20 21:43:01 www postfix/cleanup[5111]: B71782490E: message-id=<20170220204301.B71782490E@www.home>
Feb 20 21:43:01 www postfix/qmgr[1151]: B71782490E: from=<root@www.home>, size=603, nrcpt=1 (queue active)
Feb 20 21:43:01 www postfix/local[5289]: B71782490E: to=<root@www.home>, orig_to=<root>, relay=local, delay=0.12, delays=0.05/0/0/0.07, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Feb 20 21:43:01 www postfix/qmgr[1151]: B71782490E: removed
Feb 20 21:44:01 www CRON[6085]: (root) CMD (/usr/bin/monitcron.sh)
Feb 20 21:44:01 www postfix/pickup[6069]: C79642490E: uid=0 from=<root>
Feb 20 21:44:01 www postfix/cleanup[5111]: C79642490E: message-id=<20170220204401.C79642490E@www.home>
Feb 20 21:44:01 www postfix/qmgr[1151]: C79642490E: from=<root@www.home>, size=603, nrcpt=1 (queue active)
Feb 20 21:44:01 www postfix/local[5289]: C79642490E: to=<root@www.home>, orig_to=<root>, relay=local, delay=0.13, delays=0.06/0/0/0.07, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Feb 20 21:44:01 www postfix/qmgr[1151]: C79642490E: removed
Feb 20 21:45:01 www CRON[6097]: (root) CMD (/usr/bin/monitcron.sh)
Feb 20 21:45:01 www postfix/pickup[6069]: D64EA2490E: uid=0 from=<root>
Feb 20 21:45:01 www postfix/cleanup[5111]: D64EA2490E: message-id=<20170220204501.D64EA2490E@www.home>
Feb 20 21:45:01 www postfix/qmgr[1151]: D64EA2490E: from=<root@www.home>, size=603, nrcpt=1 (queue active)
Feb 20 21:45:01 www postfix/local[5289]: D64EA2490E: to=<root@www.home>, orig_to=<root>, relay=local, delay=0.11, delays=0.04/0/0/0.07, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Feb 20 21:45:01 www postfix/qmgr[1151]: D64EA2490E: removed}
РЕДАКТИРОВАТЬ: https://www.youtube.com/watch?v=j00517Nq9uo В этом видео мне говорилось, что если я хочу запустить «перезагрузку службы apache2», мой сценарий должен храниться в / var / www /. Оно работает. Раньше я пробовал в / usr / bin /, но не работал. Теперь, когда сценарий Apache2 работает, остается вопрос: откуда тогда запускать / хранить сценарий Monit ('service monit reload')?
ПРОБЛЕМА ИСПРАВЛЕНА: Я был уверен, что это проблема пути. Я добавил путь в свой скрипт как таковой: #! / Bin / bash PATH = / sbin: / bin: / usr / sbin: / usr / bin service monit reload
Я нашел решение здесь: https://unix.stackexchange.com/questions/180342/running-init-d-script-produces-start-stop-daemon-not-found
Спасибо Бену Уэйли за его вклад и его команде за помощь.