Мы тестируем наш сервер.

Я новичок в сценариях оболочки.

Мне нужен скрипт оболочки bash, чтобы прочитать текстовый файл с URL, запросить каждый URL на сервере и проверить, возвращает ли сервер приложений ответ 200 OK или 302 Redirect .

Можете ли вы указать мне любой учебник или ссылку, чтобы сделать это?

3 ответа3

2
for name in `cat textfile`; do curl -s -o /dev/null --write-out %{http_code} $name  2>&1 ; echo -e "\n"; done

объяснение:

for url in `cat textfile`

Выведите все записи в вашем текстовом файле с помощью команды cat и сделайте текущий указатель доступным через переменную url .

curl -s -o /dev/null --write-out %{http_code} $url 2>&1

Вызовите cURL и подавьте любой статус выполнения с помощью -s , запишите любой другой вывод в /dev/null (это черная дыра, в которую вы можете выбросить что угодно) с помощью ключа -o , затем используйте --write out %{http_code} чтобы получить Вы возвращаете код каждой ссылки, которую делаете, ставите текущую ссылку с помощью $url и перенаправляете STDERR в STDOUT с 2>&1 (в случае, если у вас возникнут какие-либо ошибки). Затем...

; echo -e "\n"

Эхо в новой строке, независимо от того, завершился ли последний оператор (весь этот блок cURL).

`; done

Завершите цикл.

Это, вероятно, не то, что вы хотели, так как он только печатает коды возврата.

0

Используйте команду wget с опцией --spider. Однако это может вызвать запрос HEAD вместо GET, что в зависимости от конфигурации веб-сайта может привести к неверным результатам. Другой альтернативой является использование curl.

0

Продолжение @qweet

Используйте curl с параметром командной строки -K, --config <config file> . Каждый URL в этом конфигурационном файле должен быть определен с параметром url:

URL = "страница / к / получить"

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