Porady Admina: curl

Pomoc drogowa Warszawa

Ostatnia aktualizacja: 4 listopada 2022, 11:24

W dzisiejszym wpisie z cyklu Porady Admina zajmiemy się programem curl.

curl to konsolowe narzędzie do przesyłania danych z lub na serwer. Obsługuje następujące protokoły: DICT, PLIK, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET lub TFTP. Polecenie curl jest przeznaczone do pracy bez interakcji użytkownika.

curl oferuje mnóstwo przydatnych sztuczek, takich jak: obsługa proxy, uwierzytelnianie użytkowników, przesyłanie FTP, poczta HTTP, połączenia SSL, pliki cookie, wznowienie przesyłania plików i inne.

curl dołoży wszelkich starań, aby użyć tego, co do niego przekazujesz, jako adresu URL. Nie próbuje walidować w jakikolwiek sposób składni adresu URL, ale jest dość liberalny w stosunku do tego, co akceptuje.

curl spróbuje ponownie wykorzystać połączenia do wielu transferów plików, więc uzyskanie wielu plików z tego samego serwera nie wymaga wielokrotnych połączeń, co w efekcie poprawia prędkość. Odbywa się to tylko na plikach określonych w jednym wierszu poleceń i nie może być używane między oddzielnymi wywołaniami curl.

Składnia
curl [opcje/URL]

Wybrane opcje
–anyautor : (HTTP) Informuje curl, aby samodzielnie wymyślił metodę uwierzytelniania i używał najbezpieczniejszej, taką którą zdalna witryna twierdzi, że ma ją obsługiwać.
-a : (FTP SFTP) Kiedy jest używane podczas przesyłania, powoduje to, że curl dołącza się do pliku docelowego zamiast go nadpisywać.
–basic : (HTTP) Informuje curl, aby używał uwierzytelniania podstawowego HTTP ze zdalnym hostem.
–cert-status : (TLS) Nakazuje curl weryfikację stanu certyfikatu serwera przy użyciu rozszerzenia TLS żądania stanu certyfikatu.
–cert-type : (TLS) Informuje curl, jakiego typu używa dostarczony certyfikat klienta. PEM, DER, ENG i P12 to uznane typy.
-E, –cert : (TLS) Informuje curl, aby podczas pobierania pliku używał określonego pliku certyfikatu klienta HTTPS, FTPS lub innym protokołem opartym na SSL.
-K, –config : Określ plik tekstowy, z którego będą odczytywane argumenty curl.
–connect-timeout : Maksymalny czas w sekundach, jaki może zająć połączenie curl.
-C, –continue-w : Kontynuuj/Wznów poprzedni transfer pliku z podanym przesunięciem.
-b, –cookie : (HTTP) Przekaż dane do serwera HTTP w nagłówku Cookie.
–create-dirs : W połączeniu z opcją –output, curl utworzy niezbędną, w razie potrzeby, hierarchię katalogów lokalnych.
-d, –data : (HTTP MQTT) Wysyła określone dane w żądaniu POST do serwera HTTP, w ten sam sposób, w jaki robi to przeglądarka, gdy użytkownik wypełnił formularz HTML i nacisnął przycisk przesyłania.
-f, –fail : (HTTP) Awaria bez żadnych danych wyjściowych dotyczących błędów serwera.
-G, –get : W przypadku użycia ta opcja spowoduje, że wszystkie dane określone za pomocą opcji -d, –data, –data-binary lub –data-urlencode będą używane w żądaniu HTTP GET zamiast POST, które w przeciwnym razie zostałyby wykorzystane.
-I, –head : (PLIK FTP FTP) Pobierz tylko nagłówki.
-H, –header : (HTTP) Dodatkowy nagłówek do uwzględnienia w żądaniu podczas wysyłania HTTP do serwera.
-i, –include : Uwzględnij nagłówki odpowiedzi HTTP w danych wyjściowych.
-k, –insecure : (TLS SFTP SCP) Domyślnie każde bezpieczne połączenie curl jest weryfikowane jako zabezpieczone przed rozpoczęciem transferu.
-4, –ipv4 : Ta opcja mówi curl, aby używał tylko adresów IPv4, a nie na przykład IPv6.
-key : (TLS SSH) Nazwa pliku klucza prywatnego.
–krb : (FTP) Włącz uwierzytelnianie i używanie Kerberos.
-l, –list-only : (FTP POP3) (FTP) Podczas wyświetlania katalogu FTP ten przełącznik wymusza podanie tylko widoku nazwy.
–login-options : (IMAP LDAP POP3 SMTP) Określ opcje logowania używane podczas uwierzytelniania serwera.
–mail-auth : (SMTP) Określ pojedynczy adres.
–mail-from : (SMTP) Określ pojedynczy adres, z którego dana poczta ma zostać wysłana.
–noproxy : Lista rozdzielonych przecinkami hostów, dla których nie należy używać serwera proxy, jeśli jest on określony.
-output-dir : Ta opcja określa katalog, w którym powinny być przechowywane pliki, gdy używane są –remote-name lub –output.
-#, –progess-bar : Spraw, aby postęp transferu wyświetlania curl był prostym paskiem postępu zamiast standardowego, bardziej informacyjnego miernika.
-x, –proxy [protokół://]host[:port] : Użyj określonego serwera proxy. Ciąg proxy można określić z przedrostkiem protocol://.
–pubkey : (SFTP SCP) Nazwa pliku klucza publicznego. Umożliwia podanie klucza publicznego w osobnym pliku.
-X, –request : (HTTP) Określa niestandardową metodę żądania używaną podczas komunikacji z serwerem HTTP.
–retry : Jeśli błąd przejściowy zostanie zwrócony, gdy curl próbuje wykonać transfer, to ponów tę liczbę razy, zanim się podda.
-Y, –speed-limit : Jeśli transfer jest wolniejszy niż podana prędkość (w bajtach na sekundę) dla prędkości czasu w sekundach, zostaje przerwany.

Przykłady

Pobierz stronę html
curl https://www.gnu.org/gnu/gnu.html

Zapisz pobierany plik z inną nazwą
curl https://www.gnu.org/gnu/gnu.html -o strona.html

Pobierz plik z serwera używając adresu IPv6
curl -6 https://www.gnu.org/gnu/gnu.html

Zapisz pobierany plik w wybranym katalogu
curl https://www.gnu.org/gnu/gnu.html > /home/pawe/prywatny/gnu.html

Więcej informacji o programie curl uzyskasz poleceniami:
curl -h
man curl

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.