URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 56292
[ Назад ]

Исходное сообщение
"Грамотный ТЕСТ - жив ли урл?"

Отправлено Fred , 10-Май-05 07:02 
Как грамотно из баша узнать жив ли конкретный ресурс типа www.domen.com/choto.html например?

1. Надо сначала узнать распознается ли доменное имя DNS-ом?
2. Пингуется ли домен?
3. Существует ли ресурс сам?

Может у кого то есть готовое решение ввиде фукции? Или какие-либо мысли?


Содержание

Сообщения в этом обсуждении
"Грамотный ТЕСТ - жив ли урл?"
Отправлено allez , 10-Май-05 07:43 
host www.domen.com || exit 1 # Домен неизвестен
ping -c 5 www.domen.com || exit 2 # Домен не пингуется
wget -q www.domen.com/choto.html > /dev/null 2>&1 || exit 3 # Нет такого ресурса

Если хотите оформить это как функцию, замените exit на return:

check_domen () {
  host www.domen.com || return 1 # Домен неизвестен
  ping -c 5 www.domen.com || return 2 # Домен не пингуется
  wget -q www.domen.com/choto.html > /dev/null 2>&1 || return 3 # Нет такого ресурса
}


"Грамотный ТЕСТ - жив ли урл?"
Отправлено Fred , 10-Май-05 09:05 
А как это узнать за приемлемое, четко гарантированное время?

"Грамотный ТЕСТ - жив ли урл?"
Отправлено allez , 10-Май-05 09:19 
>А как это узнать за приемлемое, четко гарантированное время?

Извините, а не могли бы вы поточнее сформулировать задачу, указав сразу все
условия? А то этак можно долго переписываться...

P.S. К слову, проверки 1 и 2 являются излишними, так как проверка 3 включает
их в себя.


"Грамотный ТЕСТ - жив ли урл?"
Отправлено Fred , 10-Май-05 09:28 
Задача такова:
1. У локалки есть выход через свой линух-рутер в инет, через 2-х провайдеров.
2. "Первый", назовем его так, провайдер, публикует динамически обновляющийся список маршрутов ресурсов, которые бесплатны для его клиентов на каком то своем ресурсе.
3. "Второй" дает просто доступ в инет, но у него дешевле внешний трафик.
4. Моя политика состоит в том чтобы, таблица маршрутов на моем линукс-рутере была такова, дефолт смотрит на второго (дешевого), а на первого смотрят роуты из списка который второй публикует, так как это бесплатно для меня.
5. Нужен скрипт, который по крону или как-то время от времени заглядывает на список бесплатных ресурсов второго и обновляет таблицу роутов у меня на рутере. Скрипт в принципе готов, в первом приближении, я его написал, он пашет, но надо довести до корректности в различных ситуациях.
6 В связи с чем и возникают такого рода примитивные вопросы:), так как, в принципе, я не админ, а токмо во исполнения воли..., админ в отпуску:)

"Грамотный ТЕСТ - жив ли урл?"
Отправлено Fred , 10-Май-05 09:30 
>P.S. К слову, проверки 1 и 2 являются излишними, так как проверка
>3 включает
>их в себя.
Согласен, но они позволяют на более раннем этапе прерваться, налицо экономия времени, или нет? Вгет то долго что-то все это разбирает:(


"Грамотный ТЕСТ - жив ли урл?"
Отправлено allez , 10-Май-05 10:57 
>Согласен, но они позволяют на более раннем этапе прерваться, налицо экономия времени,
>или нет? Вгет то долго что-то все это разбирает:(

Да никакой экономии тут нет. Если адрес неизвестен в мировом DNS или
недоступен, wget потратит не больше времени, чем host, nslookup или ping.
А чтобы не приходилось долго ждать, запускайте его с параметром -T 60.
Этот параметр задает время ожидания (в секундах), по прошествии которого
wget выдаст сообщение об ошибке. При желании это время можно уменьшить.