Linux-opdrachten en shell-vaardigheden
curl: de opdrachtregelwebclient die het web uitvoert
curl is de pocket-HTTP-client van elke operationele toolbox: diagnostisch, pijplijnvriendelijk en eerlijk over wat er terugkwam. Het vlagoppervlak ziet er enorm uit en is meestal niet in het spel: ongeveer een dozijn vlaggen dekken het dagelijkse operationele gebruik, en het kennen ervan is het verschil tussen gescripte gezondheidscontroles en gelukkigen. De regel die de meeste paging bespaart is triviaal: stel elke keer --max-time in, omdat het geduld van curl oneindig is en dat van jou niet.
Kernpunten
- Kijk voordat je downloadt: curl -sSI https://host retourneert methode, headers en status zonder hoofdtekst; voeg -v toe wanneer TLS-handshakes, proxy's of hosts-headers zich vreemd gedragen.
- Time-outdiscipline is niet onderhandelbaar: --connect-timeout 5 doodt dode verbindingen, --max-time 15 doodt langzame verbindingen; een gezondheidscontrole zonder beide kan langer duren dan de storing die het had moeten detecteren.
- Exitcodes zijn het contract in scripts: 7 is een geweigerde verbinding, 28 is een time-out, 22 is een HTTP-fout die wordt weergegeven door --fail; lees de code, niet alleen de uitvoer, anders leert uw monitoring niets.
- Combineer zichtbaarheid met handhaving: -w '%{http_code} %{time_total}\n' rapporteert wat er is gebeurd, terwijl --fail-with-body de fouttekst naar voren brengt; zonder een van deze lijkt falen precies op succes.
- Test wat gebruikers daadwerkelijk tegenkomen: --resolve example.com:443:10.1.2.3 controleert een benoemde backend zonder DNS-games, en -H 'Host: vhost.example.com' dekt de vhost-kant van hetzelfde verzoek.
- Overdrachten krijgen opzettelijke vlaggen: -o geeft de uitvoer een naam, -L volgt omleidingen die je hebt beoordeeld, --retry 3 --retry-delay 2 verzacht vlokkige upstreams, en -F handelt multipart-uploads af waar hij zich nooit druk om maakte.
- Headers en sockets bevatten de niet-browserwereld: -H 'Authorization: Bearer ...' voor API's en --unix-socket /run/app/app.sock om lokale services te onderzoeken die TCP helemaal nooit raken.
- Ken de twee klassieke valkuilen: proxy-omgevingsvariabelen die een verzoek kapen dat -v binnen enkele seconden zichtbaar maakt, en omleidingen die stilletjes een POST in een GET veranderen, tenzij je het meende.
Notitie uit de praktijk
De statuscheck die vijftien minuten bleef hangen, krulde zonder --max-time in een cron-lus, en overleefde de storing die hij had moeten detecteren. Time-outs gaan nu in principe vóór de URL.
Veelgestelde vragen
Waarom verliet curl 0 toen de site een 500 retourneerde? Het succes van
curl betekent dat het transport werkte; Fouten op HTTP-niveau zijn onzichtbaar zonder --fail (afsluiten 22) of het lezen van %{http_code} van -w. Monitoringscripts benadrukken een van de twee.
curl of wget voor scripts?
curl voor API's, headers, POST-teksten en nauwkeurige controle; wget voor spiegeling en recursie. Voor een one-shot GET werken beide, en een pijplijn die beide combineert, is meestal een teken dat niemand heeft besloten wie de eigenaar van de baan was.
Is het overslaan van TLS-verificatie ooit gerechtvaardigd?
Voor één interactieve diagnose tegen een zelfondertekend laboratoriumcertificaat, soms; in alles wat scripted of cron-gestuurd is, nee. -k schakelt de enige controle uit die een man-in-the-middle ervan weerhoudt eigenaar te worden van uw overdracht.
Hoe kom ik erachter waar een langzaam verzoek daadwerkelijk vastloopt?
Timingvariabelen: -w 'dns:%{time_namelookup} connect:%{time_connect} tls:%{time_appconnect} ttfb:%{time_starttransfer} total:%{time_total}\n' een paar keer uitvoeren scheidt DNS-flakiness van handshake-pijn van backend-stallingen.
Hoe Kinetikatech helpt bij linux-opdrachten en shell-vaardigheden
Eerlijk gezegd komen de meeste teams pas bij ons nadat ze het eerst zelf hebben geprobeerd: De opdrachten en scriptgewoonten die beslissen of een beheerder een server beheert of bestrijdt: tekst en processen zoeken, transformeren, overdragen en controleren met de tools die in elke basisinstallatie aanwezig zijn. Onze dienst Linux-serverbeveiliging en Serverbeheer bestaat zodat u linux-opdrachten en shell-vaardigheden niet op de harde manier hoeft te leren; wij regelen de setup, het toezicht en de verrassingen om 3 uur 's nachts.