Jak równolegle wykonać wiele żądań Curl

Jak równolegle wykonać wiele żądań Curl
Załóżmy, że chcesz uruchomić wiele żądań loków jednocześnie z jakiegokolwiek powodu, powiedz 10 żądań jednocześnie. Jak byś się z tym pogodzić? W tym samouczku pokazujemy, w jaki sposób możesz jednocześnie wykonać wiele kręconych żądań.

Uruchom prośby równoległe za pomocą polecenia XARGS

Xargs Polecenie jest poleceniem w systemach operacyjnych Linux i Unix, które akceptują lub przyjmuje argumenty ze standardowego wejścia, a następnie uruchamia polecenie dla każdego argumentu. Mówiąc najprościej, polecenie XARGS może przyjąć wyjście polecenia i przetworzyć je jako argument innego polecenia.

Na przykład w poniższym poleceniu Xargs bierze argumenty po lewej stronie i tworzy katalogi za pomocą nazw argumentów.

$ echo „Africa Asia Europe America” | Xargs mkdir

Polecenie XARGS można również użyć do jednoczesnego uruchamiania wielu żądań. Jeśli sprawdzisz strony, znajdziesz sekcję, która podaje argumenty wiersza poleceń, jak wskazano poniżej.

Korzystając z XARGS, spróbujemy jednocześnie wykonywać wykonanie wielu żądań Curl.

Polecenie Linux Curl to narzędzie wiersza polecenia, które jest używane do przesyłania plików. Zapewnia wsparcie dla niezliczonych protokołów, takich jak HTTP, HTTPS, FTP, FTP, SCP, TFTP i wiele innych.

Załóżmy, że chcesz uzyskać nagłówki HTTP witryny za pomocą polecenia curl. Aby to zrobić, musisz wywołać polecenie curl z flagą -i, a następnie wyświetlany adres URL.

$ curl -i "https: // linuxways.internet"

Teraz właśnie wysłałeś jedno żądanie Curl. Załóżmy, że chcesz wykonać 5 równoległych żądań; Jak byś to zrobił? Rozwiązaniem jest użycie polecenia XARGS, jak pokazano obok polecenia curl.

$ xargs -i % -p 5 curl -i "https: // linuxways.internet" < <(printf '%s\n' 1… 10)

Flaga -p oznacza liczbę żądań równolegle. Sekcja <(printf '%s\n' 1… 10) Wydrukuje liczby 1–10 i powoduje, że polecenie Curl działa 10 razy z 5 żądaniami, które działa równolegle.

Dodatkowo możesz uruchomić poniższe polecenie, aby osiągnąć ten sam wynik. Podobnie jak w poprzednim przykładzie, poniższe polecenie wykonuje polecenie Curl 10 razy z 5 żądaniami równolegle.

$ seq 1 10 | xargs -n1 -p 5 curl -i "https: // linuxways.internet"

Weźmy kolejny przykład. Załóżmy, że chcesz pobrać 3 pliki jednocześnie za pomocą polecenia curl. Pierwszym krokiem będzie zapisanie adresów URL plików z pobierania pliku tekstowego. Tutaj mamy plik tekstowy do pobrania.TXT z następującymi adresami URL.

Aby pobrać pliki jednocześnie, uruchom następujące polecenie:

$ xargs -p 5 -n 1 curl -o < download.txt

Polecenie zwija każdy wiersz w pliku tekstowym 5 razy równolegle. -n 1 Flaga zapewnia, że ​​polecenie Curl odczytuje jeden wiersz dla każdego wykonania polecenia curl.

I w ten sposób wykonujesz wiele żądań Curl równolegle.