Skrypt powłoki, aby uzyskać odpowiedź z serwera

0

Testujemy nasz serwer.

Jestem początkującym w skryptowaniu powłoki.

Potrzebuję skryptu powłoki bash, aby odczytać plik tekstowy z adresami URL, wysłać zapytanie do każdego adresu URL do serwera i sprawdzić, czy serwer aplikacji zwraca odpowiedź 200 OKlub 302 Redirectodpowiedź.

Czy możesz wskazać mi samouczek lub link do tego celu?

użytkownik2434
źródło

Odpowiedzi:

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

wyjaśnienie:

for url in `cat textfile`

Za pomocą polecenia wypisz wszystkie wpisy do pliku tekstowego cati udostępnij bieżący wskaźnik za pośrednictwem urlzmiennej.

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

Wywołaj cURL i pomiń status postępu za pomocą przełącznika -s, napisz dowolne wyjście /dev/null(jest to czarna dziura, w którą możesz wrzucić wszystko) -o, a następnie użyj, --write out %{http_code}aby dać ci kod powrotu dla każdego linku, który robisz, odłóż bieżący link za pomocą $urli przekieruj STDERR do STDOUT za pomocą 2>&1(w przypadku, gdy wystąpią jakiekolwiek błędy). Następnie...

; echo -e "\n"

Echo w nowej linii, niezależnie od tego, czy ostatnia instrukcja (cały blok cURL) nie powiodła się.

`; done

Zakończ pętlę.

Prawdopodobnie nie jest to to, czego chciałeś, ponieważ drukuje tylko kody powrotu.

qweet
źródło
0

Użyj wgetpolecenia z opcją --spider . Może to jednak powodować żądanie HEAD zamiast GET, które w zależności od konfiguracji strony internetowej może powodować nieprawidłowe wyniki. Inną alternatywą jest użycie curl .

Artem Koshelev
źródło
0

Dalsze działania na @qweet

Użyj curl z -K, --config <config file>parametrem wiersza polecenia. Każdy adres URL w tym pliku konfiguracyjnym musi być zdefiniowany za pomocą parametru url:

url = "page / to / get"

Leniwy Borsuk
źródło