Linux команди и умения за командни обвивки
curl: Уеб клиентът от командния ред, който управлява мрежата
curl е джобният HTTP клиент на всяка кутия с инструменти за операции: диагностичен, лесен за конвейер и честен за това, което се е върнало. Повърхността на флага му изглежда огромна и в повечето случаи не е в игра: около дузина флагове покриват ежедневната оперативна употреба и познаването им е разликата между скриптовите проверки на здравето и късметлиите. Правилото, което спестява най-много страниране, е тривиално: задайте --max-time всеки път, защото търпението на curl е безкрайно, а вашето не.
Ключови точки
- Вижте, преди да изтеглите: curl -sSI https://host връща метод, заглавки и статус без тяло; добавете -v, когато TLS ръкостискания, прокси сървъри или заглавки на хостове се държат странно.
- Дисциплината за изчакване не подлежи на обсъждане: --connect-timeout 5 убива мъртвите връзки, --max-time 15 убива бавните; здравна проверка без и двете може да надживее прекъсването, което е трябвало да открие.
- Изходните кодове са договорът в скриптовете: 7 е отказана връзка, 28 е изчакване, 22 е HTTP грешка, изведена от --fail; прочетете кода, а не само изхода, или вашият мониторинг не научава нищо.
- Сдвояване на видимост с прилагане: -w '%{http_code} %{time_total}\n' съобщава какво се е случило, докато --fail-with-body извежда тялото на грешката; без едно от тях провалът изглежда точно като успех.
- Тествайте какво действително са успели потребителите: --resolve example.com:443:10.1.2.3 проверява именуван бекенд без DNS игри и -H 'Host: vhost.example.com' покрива vhost страната на същата заявка.
- Трансферите получават умишлени флагове: -o наименува изхода, -L следва пренасочвания, които сте прегледали, --retry 3 --retry-delay 2 омекотява нестабилните възходящи потоци и -F обработва многостранни качвания, за които wget никога не се интересува.
- Хедърите и сокетите пренасят света извън браузъра: -H 'Authorization: Bearer ...' за API и --unix-socket /run/app/app.sock за изследване на локални услуги, които изобщо не докосват TCP.
- Познайте двата класически капана: променливи на прокси среда, отвличащи заявка, която -v излага за секунди, и пренасочвания, които безшумно превръщат POST в GET, освен ако не сте го имали предвид.
Бележка от терен
Проверката на здравето, която висеше за петнадесет минути, беше curl без --max-time в cron цикъл и надживя прекъсването, което трябваше да открие. Времето за изчакване сега влиза преди URL адреса, по принцип.
Често задавани въпроси
Защо curl излезе 0, когато сайтът върна 500?
успехът на curl означава, че транспортът е работил; Грешките на HTTP ниво са невидими без --fail (изход 22) или четене на %{http_code} от -w. Скриптовете за наблюдение настояват за едно от двете.
curl или wget за скриптове?
curl за API, заглавки, POST тела и прецизен контрол; wget за отразяване и рекурсия. За еднократен GET работи, а конвейер, смесващ и двете, обикновено е знак, че никой не е решил кой притежава работата.
Оправдано ли е пропускането на TLS проверка?
За една интерактивна диагностика срещу самоподписан лабораторен сертификат, понякога; във всичко скриптирано или управлявано от cron, не. -k деактивира единствената проверка, която спира човек по средата да притежава вашия трансфер.
Как да разбера къде всъщност спира бавна заявка?
Времеви променливи: -w 'dns:%{time_namelookup} connect:%{time_connect} tls:%{time_appconnect} ttfb:%{time_starttransfer} total:%{time_total}\n' изпълни няколко пъти разделя нестабилността на DNS от болката при ръкостискане от задните сергии.
Как Kinetikatech помага с linux команди и умения за командни обвивки
Това правим днес: Командите и скриптовите навици, които решават дали администраторът управлява сървър или се бори с него: търсене, трансформиране, прехвърляне и надзор на текст и процеси с инструментите, които се намират във всяка основна инсталация. Нашата услуга Сигурност на Linux сървъра и Сървърна администрация покрива всичко — от оценка до внедряване, денонощен мониторинг и спешна реакция до 30 минути.