Я пытаюсь запустить bash-скрипт в crontab на Centos 5.5, но я не вижу его в роли pid (pid -e).Сам сценарий использует команду awk для отслеживания текущего журнала для ключевого слова, затем отправляет электронное письмо, а затем, когда сервер снова подключается, отправляет электронное письмо с подтверждением:
tail -fn0 user | awk '
!server_down && /disconnect_tcp_conn/ {
system("mail -s \"server down\" mail@gmail.com </dev/null")
print "server down"
server_down = 1 }
server_down && /daemon apps started/ {
system("mail -s \"server's back!\" mail@gmail.com </dev/null")
print "Server's back!"
server_down = 0 }'
Первоначально у меня возникли проблемы с запускомскрипт пока терминал был закрыт.Кто-то предложил использовать setsid следующим образом:
setsid server_mon.sh >/dev/null 2>&1 < /dev/null &
И это прекрасно работает ... пока не получится.По какой-то причине, через некоторое время, например, через день, скрипт больше не отправляет уведомления.Итак, я подумал создать cronjob для скрипта.
Не будучи знакомым с bash shell и не очень программистом, я каждую минуту тестировал скрипт в cron, чтобы проверить, правильно ли я его использую:
* * * * * /var/log/server_mon.sh
Не сработало.Было бы только сказать:
"/tmp/crontab.XXXXmu99ii" 19L, 760C written
crontab: installing new crontab
Пытался использовать rc.local .. не может.Я думаю, что версия centos слишком старая (5.5), плюс, возможно, crontab - это путь, потому что я мог бы захотеть выяснить, в какой момент уведомления перестают работать, и соответственно настроить работу cron ... по крайней мере доу меня есть время, чтобы исправить это.
попытался добавить путь к команде awk в сценарии: / usr / bin / awk Все еще без pid.
попытался добавить следующие изменения из того, что я нашел в Интернете:
setsid bash -lic 'cd /var/log && exec SLR_reaper.sh -start' </dev/null &>/dev/null &
не работал и не уверен, что это правильно.
Мой ожидаемый результат - получить это:
setsid server_mon.sh >/dev/null 2>&1 < /dev/null &
каким-то образом вызываться crontab:
@reboot /var/log/server_mon.sh
*or*
* * * * * /var/log/server_mon.sh
Просто чтобы увидеть, как это работает.
Было бы замечательно любое направление или помощь.Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.Спасибо!
Снимок экрана журнала, отправленного на почту: введите описание изображения здесь