Спецификация то, что, если нет никакого номера порта на URI, то значение по умолчанию является портом 80.
У меня было приложение Tomcat, которое работало как порт 80, и я был заинтересован, когда Tomcat будет работать как корень (из-за порта 80). Кроме того, я не мог действительно быть уверен в безопасности приложения. Таким образом, я решил делать изменения необходимыми для выполнения этого как другого un-privd порта. Моя проблема, поскольку Ваша - содержание простой URI. Я нашел в сети несколько шагов, которые я должен был сделать, и я был в системе Linux.
Во-первых, перенаправьте порт 80 для портирования 8080 (моя обозначенная альтернатива). Можно легко сделать это путем активации iptables и использования следующих простых директив:
iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A OUTPUT -d your_hostname -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -d your_hostname -p tcp --dport 80 -j REDIRECT --to-ports 8080
Я полагаю, что заменил своим IP-адресом и localhost и your_hostname, когда я настроил это.
Затем необходимо внести некоторые изменения в конфигурационном файле Tomcat: (1) изменяют порт коннектора на 8 080 (для этого примера) и порт прокси к 80. Можно затем выполнить кота как некорневого пользователя, все еще иметь простой URI, и все счастливы. Извините, что я не могу помнить определенный XML-файл для изменения здесь.
Я думаю, контролируя системный журнал, было бы самое легкое решение.
Имейте свои системные журналы, передают Вашей системе контроля и затем настраивают предупреждения в Вашей системе контроля.
Я также настроил пользовательских МИБ SNMP в прошлом, которые Вы могли поместить метку времени прошлого раза, когда конкретный cronjob работал. Затем некоторая внешняя система могла контролировать это snmp MIB для метки времени, более старой, чем 24 часа.
Ваше решение осуществимо, но оно заново изобретает некоторые колеса, что Вы, вероятно, не должны.
Во-первых, у Вас должен действительно быть некоторый тип контролирующего сервиса. Я склонен использовать nagios, но там существует тонна. Выберите одну из тех систем и имейте ее, контролируют Вашего демона крона.
Затем запишите плагин, который использует обертки это упомянутый voretaq7. У Вас будет предупреждение, если cronjob перестанет работать и если crond также перестал работать.
Причина я предлагаю это, состоит в том, что у Вас будет весь свой контроль в одном месте. У Вас должен будет в конечном счете быть сайт широкая система контроля, и имеет больше смысла прикладывать Ваши усилия к этому вместо того, чтобы иметь в распоряжении рассеянную серию систем контроля.
Ваше решение звучит хорошо на основе Вашей среды, но это могло бы быть немного излишества (если Вы не должны мочь контролировать историю этого задания за длительный срок, в этом случае база данных укусила, мог бы иметь смысл).
Другая опция рассмотреть просто переносит Ваши задания крона в сценарий проверки (если задание крона выходит с ошибочным состоянием (! =0), посылают электронное письмо, или генерируют вывод и позволяют крону послать электронное письмо для Вас).
У меня есть имевший дело с подобным требованием:
Скрипт, запущенный кроном, отправляет, он производится к logger
команда. регистратор отправляет сообщение системного журнала на средство Local4, которое обрабатывается rsyslog. local4.* затем отправляется удаленному слушателю Системного журнала - в моем случае, экземпляре Splunk. Splunk имеет сохраненный поиск, который запускает предупреждения по электронной почте, если событий не происходит в ожидаемом окне времени. В дополнение к предупреждениям Splunk также дает мне хорошую доступную для поиска историческую временную шкалу событий.
Ваше решение звучит немного более сложным, чем я думаю, что это должно быть.
Запустите с рассмотрения и/или контроля /var/log/cron.log
(или везде, где Ваши журналы крона идут). крон делает хорошее задание входа каждой команды, которую это выполняет, наряду с ошибками. Если Вы хотите знать то, что произошло, это - место для взгляда. Если Вы волнуетесь по поводу смерти крона, можно установить cron'ed heartbeat, который просто регистрируется каждые 5 минут, и если Вы не видите heartbeat, отправьте своего рода предупреждение. Если Вы действительно чувствуете необходимости во втором инструменте, следящем за кроном существует пакет жемчуга (Schedule::Cron
) то, что Вы могли использовать для регулярной проверки heartbeat. Если Вы - то, который волновался о надежности локальной машины, можно также отправить журналы на вторую машину для контроля/обработки/предупреждения/и т.д.
Поочередно, Вы могли просто использовать своего рода инструмент системного мониторинга (SNMP, Nagios, Hobbit/BigSister, и т.д.) для внешнего контроля этого, процесс крона работает. Вы действительно контролируете здоровье своих систем, правильно?
Хотя, если Вы действительно, это волновалось о смерти крона, Вы могли бы хотеть изучить восстановление или замену Вашей машины. крон должен быть довольно надежным, и если он перестал работать, это - вероятно, признак большей проблемы.
Вы можете использовать PushMon и создать URL-адрес с расписанием «до 3:30 каждый вторник». Затем выполните эхо-запрос по URL-адресу PushMon, когда ваш скрипт будет успешно выполнен. Если URL-адрес PushMon не вызывается из-за того, что компьютер выключен, или cron не удалось запустить (такое случается), или ваш скрипт не работает, PushMon предупредит вас к 3:30 утра. Вы можете получать уведомления по электронной почте, SMS, телефону, мгновенным сообщениям или Twitter, и эта услуга бесплатна.
Заявление об ограничении ответственности: я связан с PushMon.
Я создал простой инструмент для этого типа мониторинга - https://cronitor.io
Он позволяет вам устанавливать как интервалы (каждые 24 часа), так и длительность (более 10 минут, менее 2 минут и т.д.), а затем получать email/SMS-предупреждения, если ваша задача cron (или любая другая автоматизированная задача) не выполняется в соответствии с правилами, которые вы определили.
Инструмент бесплатен для индивидуальных мониторов, а платные планы доступны для тех, у кого есть несколько потребностей в мониторинге.
.Попробуйте ] healthchecks.io , это отличное бесплатное решение с открытым исходным кодом. Вы даже можете разместить его, если хотите.