Написание сценария оболочки для отправки мне электронного письма, если веб-сайт сообщает, что он не работает - PullRequest
0 голосов
/ 24 августа 2011

В настоящее время я пытаюсь создать сценарий оболочки, который будет отправлять мне и другим получателям сообщения по электронной почте, если веб-сайт сообщит, что он недоступен для обслуживания. Конечно, я пытаюсь использовать curl и grep для передачи переменной, если grep видит фразу «Down for Maintenance», но даже когда веб-сайт не говорит, что он все еще выводит информацию. Я хочу сделать так, чтобы, если фраза существовала, она делала правдоподобной, иначе она ложна и просто выходит. Кстати, это для cronjob.

Вот то, что я придумал до сих пор. П.С прости за то, что ты такой нуб.

    ## Sends an email if the website is down for maintanance
    #RESPONSE = ''
    curl websiteaddress.com | grep "Down for Maintenance" | read RESPONSE
    if $RESPONSE
    then
    echo "Website is Down" | mail -s "Website is down for maintenance" email@address.com
    end else
    exit

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Изменение:

curl websiteaddress.com | grep "Down for Maintenance" | read RESPONSE
if $RESPONSE

На:

curl websiteaddress.com | grep -q "Down for Maintenance"
if [ $? -eq 0 ] ; then
    echo "Website is Down" | mail -s "Website is down for maintenance" email@address.com
; fi

grep -q указывает grep работать в «тихом режиме», то есть ничего не выводится.Вместо этого он завершится с кодом возврата, равным нулю, если совпадение было найдено, и 1, если совпадение не было найдено.if [ $? -eq 0 ] проверяет код возврата grep.

0 голосов
/ 24 августа 2011

Ваш ОТВЕТ инициализирован правильно, но в другом процессе - из-за канала.В вашем скрипте вызова он не известен.

Если вам нужен ОТВЕТ, вы можете сделать следующее:

read RESPONSE <<< $(curl websiteaddress.com | grep -q "Down for Maintenance")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...