Браузер с открытым исходным кодом с опцией командной строки для проверки ошибок при получении страницы?

294
3cheesewheel

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

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

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

0

1 ответ на вопрос

1
webmarc

You can use wget or curl for this. Both are command line tools to get web pages and have options to examine the return codes.

For example:

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

Here -S tells wget to print the server headers, -O saves the resultant file to /dev/null because I'm not interested in the contents, just the status code. The 2>&1 is required because wget prints this all on stderr. And finally, just piping this to grep for part of the string that is in every response code (HTTP/1.1 is part of every status code these days, but I left the version out so that it will work with v1.2 or 2.0).

You could setup a bash shell script along the lines of

$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 

Stick something like that in cron on a 1 or 5 minute schedule and you're good to go.

Obviously, substitute the URL you want to monitor for google.

Похожие вопросы