Linux-kommandon och skalfärdigheter
curl: Kommandoradswebbklienten som kör webben
curl är pocket-HTTP-klienten för varje operationsverktygslåda: diagnostisk, pipeline-vänlig och ärlig om vad som kom tillbaka. Dess flaggyta ser enorm ut och är för det mesta inte i spel: ett dussintal flaggor täcker den dagliga operativa användningen, och att känna till dem är skillnaden mellan skriptade hälsokontroller och lyckliga sådana. Regeln som sparar mest personsökning är trivial: ställ in --max-tid varje gång, eftersom curls tålamod är oändligt och ditt inte.
Nyckelpunkter
- Titta innan du laddar ner: curl -sSI https://host returnerar metod, rubriker och status utan en text; lägg till -v när TLS-handskakningar, proxyservrar eller värdhuvuden beter sig konstigt.
- Timeout-disciplin är icke förhandlingsbar: --connect-timeout 5 dödar döda anslutningar, --max-time 15 dödar långsamma; en hälsokontroll utan båda kan vara längre än avbrottet som det var tänkt att upptäcka.
- Exit-koder är kontraktet i skript: 7 är anslutning nekad, 28 är timeout, 22 är ett HTTP-fel som visas av --fail; läs koden, inte bara utgången, annars lär din övervakning ingenting.
- Para synlighet med verkställighet: -w '%{http_code} %{time_total}\n' rapporterar vad som hände, medan --fail-with-body visar felkroppen; utan en av dessa ser misslyckande precis som framgång.
- Testa vad användare faktiskt träffar: --resolve example.com:443:10.1.2.3 kontrollerar en namngiven backend utan DNS-spel, och -H 'Host: vhost.example.com' täcker vhost-sidan av samma begäran.
- Överföringar får avsiktliga flaggor: -o namnger utgången, -L följer omdirigeringar du har granskat, --försök 3 --försök igen 2 mjukar upp fläckiga uppströms, och -F hanterar flerdelade uppladdningar som vi aldrig brydde oss om.
- Headers och sockets bär icke-webbläsarvärlden: -H 'Authorization: Bearer ...' för API:er och --unix-socket /run/app/app.sock för att undersöka lokala tjänster som aldrig rör TCP alls.
- Känn till de två klassiska fällorna: proxymiljövariabler som kapar en begäran som -v exponerar på några sekunder, och omdirigeringar som tyst förvandlar en POST till en GET om du inte menade det.
Fältnotis
Hälsokontrollen som hängde i femton minuter var curl utan --max-tid inne i en cronslinga, och den höll ut det avbrott den skulle upptäcka. Timeouts går nu i princip före URL:en.
Vanliga frågor
Varför avslutade curl 0 när webbplatsen gav en 500?
curls framgång betyder att transporten fungerade; HTTP-nivåfel är osynliga utan --fail (avsluta 22) eller en läsning av %{http_code} från -w. Övervakningsmanus insisterar på en av de två.
curl eller wget för skript?
curl för API:er, rubriker, POST-kroppar och exakt kontroll; wget för spegling och rekursion. För en one-shot GET fungerar antingen, och en pipeline som blandar båda är vanligtvis ett tecken på att ingen bestämt vem som ägde jobbet.
Är det någonsin motiverat att hoppa över TLS-verifiering?
För en interaktiv diagnostik mot ett självsignerat labbcertifikat, ibland; i något skript eller cron-drivet, nej. -k inaktiverar den enda checken som hindrar en man i mitten från att äga din överföring.
Hur tar jag reda på var en långsam begäran faktiskt stannar?
Tidsvariabler: -w 'dns:%{time_namelookup} connect:%{time_connect} tls:%{time_appconnect} ttfb:%{time_starttransfer} totalt:%{time_total}\n' körs några gånger skiljer DNS-flakiness från handskakningssmärta från backend-stopp.
Så hjälper Kinetikatech dig med linux-kommandon och skalfärdigheter
Vi har hanterat det här hundratals gånger: Kommandon och skriptvanor som avgör om en administratör driver en server eller bekämpar den: sök, transformera, överföra och övervaka text och processer med verktygen som finns i varje basinstallation. Med Linux-serversäkerhet och Serverhantering får du hela kedjan, vi bedömer, vi genomför, vi håller koll dygnet runt och vi tar befälet inom 30 minuter när det spelar roll.