Сценарий оболочки для проверки URL

Я пытаюсь записать сценарий оболочки для проверки на существование конкретного каталога в конкретном доменном имени. Например, мне назвали веб-сайт www.example.com. Я хочу проверить ли страница www.example.com/testpage существует или нет. У меня есть текстовый файл, содержащий список имен каталогов, один на строку, который должен быть заменен именем testpage. Я хочу, чтобы сценарий выбрал каждые из этих имен каталогов, добавил его к URL www.example.com и проверьте его. Как я могу начать писать свой сценарий?

3
задан 13 October 2014 в 09:48

1 ответ

Давайте исследуем пример.

Файл relative_urls.list:

> cat relative_urls.list 
/users/449/oli
/users/449
/help/badges
/help/badges/185/curious
/unanswered
/questions/tagged/12.04
/questions/tagged/boot
/questions/tagged/oracle
/questions/tagged/internet_explorer
/questions/tagged/outlook

Мы хотели бы проверить если эти документы, доступные на сайте http://askubuntu.com .

Возможное решение:

> cat relative_urls.list |while read i ; do curl --head -s "http://askubuntu.com"$i |grep -q '^HTTP.*200' && echo "OK '$i'" ||echo "fail '$i'" ; done

И результат:

OK '/users/449/oli'
fail '/users/449'
OK '/help/badges'
OK '/help/badges/185/curious'
OK '/unanswered'
OK '/questions/tagged/12.04'
OK '/questions/tagged/boot'
OK '/questions/tagged/oracle'
fail '/questions/tagged/internet_explorer'
fail '/questions/tagged/outlook'

, Если Вы предпочитаете другое определение доступности URL, можно измениться grep команда на что-то более соответствующее для условий.

Важная вещь состоит в том, что curl шоу, является ли URL , служили веб-сервером. Нет никакого надежного метода для определения существование каталога в файловой системе веб-сервера через http.

2
ответ дан 18 November 2019 в 05:00

Другие вопросы по тегам:

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