Polecenia systemu Linux i umiejętności powłoki
curl: Klient sieciowy wiersza poleceń uruchamiający sieć WWW
curl to kieszonkowy klient HTTP dostępny w każdym zestawie narzędzi operacyjnych: diagnostyczny, przyjazny dla potoków i uczciwy w kwestii tego, co wróciło. Powierzchnia flagi wygląda na ogromną i przeważnie nie jest używana: około tuzina flag służy do codziennego użytku operacyjnego, a znajomość ich to różnica między skrypowanymi kontrolami stanu a szczęściarzami. Zasada oszczędzająca najwięcej stronicowania jest trywialna: ustawiaj --max-time za każdym razem, ponieważ cierpliwość curla jest nieskończona, a twoja nie.
Kluczowe punkty
- Spójrz przed pobraniem: curl -sSI https://host zwraca metodę, nagłówki i status bez treści; dodaj -v, gdy uściski dłoni TLS, serwery proxy lub nagłówki hostów zachowują się dziwnie.
- Limit czasu nie podlega negocjacjom: --connect-timeout 5 zabija martwe połączenia, --max-time 15 zabija wolne; kontrola stanu bez obu może przetrwać awarię, którą miała wykryć.
- Kody wyjścia to kontrakt w skryptach: 7 to odmowa połączenia, 28 to przekroczenie limitu czasu, 22 to błąd HTTP zgłaszany przez --fail; przeczytaj kod, a nie tylko dane wyjściowe, w przeciwnym razie monitorowanie niczego się nie nauczy.
- Połącz widoczność z egzekwowaniem: -w '%{http_code} %{time_total}\n' raportuje, co się stało, podczas gdy --fail-with-body wyświetla treść błędu; bez jednego z nich porażka wygląda dokładnie tak samo jak sukces.
- Sprawdź, co faktycznie trafili użytkownicy: --resolve example.com:443:10.1.2.3 sprawdza nazwany backend bez gier DNS, a -H „Host: vhost.example.com” obejmuje stronę vhost tego samego żądania.
- Transfery otrzymują celowe flagi: -o nadaje nazwę wynikowi, -L podąża za sprawdzonymi przekierowaniami, --retry 3 --retry-delay 2 łagodzi niestabilne przesyłanie danych w górę, a -F obsługuje przesyłanie wieloczęściowe, o które wget nigdy się nie troszczył.
- Nagłówki i gniazda przenoszą świat inny niż przeglądarka: -H „Autoryzacja: nośnik ...” dla interfejsów API i --unix-socket /run/app/app.sock w celu sondowania lokalnych usług, które w ogóle nie dotykają protokołu TCP.
- Poznaj dwie klasyczne pułapki: zmienne środowiskowe proxy przechwytujące żądanie, które -v ujawnia w ciągu kilku sekund, oraz przekierowania, które po cichu zamieniają POST w GET, chyba że miałeś to na myśli.
Notatka z praktyki
Kontrola stanu, która wisiała przez piętnaście minut, wykazała zwinięcie bez --max-time w pętli cron i trwała dłużej niż awaria, którą miała wykryć. Limity czasu są teraz z zasady naliczane przed adresem URL.
Częste pytania
Dlaczego curl zakończył działanie 0, gdy witryna zwróciła 500?
sukces curla oznacza, że transport zadziałał; Błędy na poziomie HTTP są niewidoczne bez opcji --fail (wyjście 22) lub odczytu %{http_code} z -w. Skrypty monitorujące kładą nacisk na jeden z dwóch.
curl lub wget dla skryptów?
curl dla API, nagłówków, treści POST i precyzyjnej kontroli; wget do tworzenia kopii lustrzanych i rekurencji. W przypadku jednorazowego GET działa albo jedno, a potok łączący oba jest zwykle oznaką, że nikt nie zdecydował, który z nich jest właścicielem zadania.
Czy pominięcie weryfikacji TLS jest kiedykolwiek uzasadnione?
Czasami w przypadku jednej interaktywnej diagnostyki na podstawie samodzielnie podpisanego certyfikatu laboratoryjnego; w czymkolwiek opartym na skrypcie lub sterowanym przez cron, nie. -k wyłącza jedyną kontrolę, która powstrzymuje człowieka pośrodku od posiadania twojego transferu.
Jak sprawdzić, gdzie faktycznie powolne żądanie się zawiesza?
Zmienne czasowe: -w 'dns:%{time_namelookup} connect:%{time_connect} tls:%{time_appconnect} ttfb:%{time_starttransfer} total:%{time_total}\n' kilkakrotne uruchomienie oddziela niestabilność DNS od bólu związanego z uzgadnianiem z powodu przestojów zaplecza.
Jak Kinetikatech pomaga w polecenia systemu linux i umiejętności powłoki
Nie muszą Państwo stawać się ekspertami od polecenia systemu linux i umiejętności powłoki: Polecenia i nawyki związane z tworzeniem skryptów, które decydują o tym, czy administrator obsługuje serwer, czy z nim walczy: przeszukuje, przekształca, przesyła i nadzoruje tekst i procesy za pomocą narzędzi znajdujących się w każdej podstawowej instalacji. Dokładnie do tego służy Bezpieczeństwo serwerów Linux i Zarządzanie serwerami: konfiguracja, hardening, monitoring oraz inżynier dyżurny dzień i noc.