У меня есть сценарий, который проверяет мой публичный IP-адрес каждые несколько минут.
Проблема в том, что интернет-провайдер иногда дает мне кешированные страницы (я знаю, я использовал все связанные аргументы в wget, isp формируется кучкой некомпетентных таких-то и-то, которые, по-видимому, создали свой собственный суперэффективный кеш-сервер) или страницы ошибок, сделанные моим собственным маршрутизатором.
В результате wget сохраняет страницу с ошибкой, когда должен сохранить мой IP-адрес.
РЕДАКТИРОВАТЬ:
что я использую для обнаружения изменений IP-адреса
http://paste.debian.net/292602/
Этот фрагмент кода должен указать вам правильное направление:
wget --server-response 78.47.35.18/ip-raw.php -O ip-current 2>&1| grep -c 'HTTP/1.1 200 OK'
1
is_200_ok=$(wget --server-response 78.47.35.18/ip-raw.php -O ip-current 2>&1| grep -c 'HTTP/1.1 200 OK')
echo $is_200_ok
1
Однако я бы использовал для этого Python или Perl. Было бы проще.
Как это будет выглядеть в вашем скрипте:
#!/bin/bash
rm -f ip-current /tmp/ip-message-temp
touch ip-old
is_200_ok=$(wget --server-response 78.47.35.18/ip-blabl.php -O ip-tmp 2>&1| grep -c 'HTTP/1.1 200 OK')
if [ $is_200_ok == 1 ]; then
mv ip-tmp ip-current
echo "YES"
else
echo "Got error instead of IP address :("
exit 1
fi
Также избегайте прямой записи в syslog, гораздо лучше использовать logger:
NAME
logger — a shell command interface to the syslog(3) system log module