У меня есть пара телевизоров с питанием от Raspberry Pis - у них установлен Raspbian и они загружаются прямо в полноэкранный режим Midori. Они отображают метрики, поэтому они всегда должны быть включены и отображать фиксированную страницу.

Недавно я исправил проблему с частым отключением Wi-Fi, добавив задание cron, которое выполняет ifup на интерфейсе wlan всякий раз, когда обнаруживает, что сеть не работает, и это решает многие проблемы с простоями.

Однако теперь я сталкиваюсь с проблемой, когда всякий раз, когда сама страница недоступна, браузер "застревает" на странице с ошибкой (часто я получаю сообщение "Соединение неожиданно прервано"). Что было бы идеально, так это браузер с опцией командной строки для возврата кода состояния страницы, которую он в данный момент открыл, или нет ли ошибок на странице, и если да, я могу перезагрузить страницу или что-то подобное это обратно. Я уже проверил опции терминала Midori, а также Chromium, но ни один из них, похоже, не имеет того, что я ищу, и поискать его оказалось трудным. Если кто-нибудь знает браузер или инструмент, который может помочь мне с тем, что я буду делать, я был бы очень благодарен за любые предложения!

1 ответ1

1

Вы можете использовать wget или curl для этого. Оба являются инструментами командной строки для получения веб-страниц и имеют опции для проверки кодов возврата.

Например:

webmarc@plato:~$ wget http://www.google.com/  -S  -O /dev/null 2>&1 |  grep HTTP\/
  HTTP/1.1 200 OK

Здесь -S указывает wget печатать заголовки сервера, -O сохраняет результирующий файл в /dev /null, потому что меня не интересует содержимое, только код состояния. 2>&1 обязательны, потому что wget печатает все это на stderr. И, наконец, просто добавьте это в grep для части строки, которая есть в каждом коде ответа (HTTP /1.1 является частью каждого кода состояния в наши дни, но я оставил версию, чтобы она работала с v1.2 или 2.0),

Вы можете установить скрипт оболочки bash в соответствии с

$RESULT=`pi@kali:~$ wget http://www.google.com/  -S  -O /dev/null 2>&1 |  grep HTTP\/`

if [[ $RESULT != "  HTTP/1.1 200 OK" ]]
   then fix_teh_broken.sh
fi

Вставьте что-то подобное в хрон на 1 или 5-минутном графике, и все готово.

Очевидно, замените URL, который вы хотите отслеживать для Google.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .