За цикл для мониторинга сайтов не загружается - PullRequest
0 голосов
/ 20 ноября 2019

Я управляю большим количеством сайтов и хотел найти недорогой способ заявить о себе, когда один из этих сайтов не загружается, чтобы свести к минимуму количество раз, когда клиенты находят, что их сайты не работают до меня. Я решил создать цикл for для загрузки доменных имен и вывода доменов, которые возвращают что-либо, кроме ответа 200. Может ли кто-нибудь помочь мне с синтаксисом? Я не уверен, как это сделать.

До сих пор я считаю, что это: for i in $; do curl -L $;

Прошлое, что у меня есть выше, я не уверен, как получить ответ на файл, который я буду проверять каждый день для доменов.

Все, что вы можете предложить, будет оценено.

1 Ответ

0 голосов
/ 21 ноября 2019

Вы можете определить эту функцию bash:

httpstatus() {
    file=$1

    # read file line by line
    while IFS= read -r site; do

        # print sites that do not return status 20X or 30X
        if [[ $(curl -o /dev/null -sIw '%{http_code}\n' $site) != [23]0[0-2] ]]; then
            echo $site
        fi

    done < "$file"
}

Пример использования:

$ cat sites
https://stackoverflow.com
https://example.com
https://example.com/returns-404
$ httpstatus sites
https://example.com/returns-404

Синтаксис Bash и встроенные команды описаны в man bash. BashFAQ - другой полезный ресурс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...