Linux команди и умения за командни обвивки
wget: Изтеглянето, което никога не спи
wget е curl за задачи, измерени в часове: огледала, архиви, рекурсивни изтегляния и cron пакети, които се изпълняват, докато никой не гледа. Той рекурсира, зачита robots.txt, възобновява прекъснатите трансфери по подразбиране и се съобразява с ограниченията на скоростта и интервалите на изчакване, което е учтивост, оставена на обаждащия се. Разделението между двата инструмента е чисто: wget за обем и търпение, curl за прецизност и екип, който познава и двата, рядко има нужда от трети инсталатор.
Ключови точки
- Огледалото е един ред: wget --mirror --convert-links --adjust-extension --no-parent https://docs.example.com; пропуснете --no-parent и архивът на документацията тихо се превръща в обхождане на всичко над него.
- Възобновете и опитайте отново безплатно: wget -c избира прекъснато прехвърляне обратно, а --tries=10 --waitretry=5 изпреварва сървърите, които хълцат по средата на натрупването, вместо да провалят работата при първото потрепване.
- Учтивостта има флагове: --limit-rate=200k, --wait=1 и --random-wait предпазва огледалото от прекъсване на ограниченията на скоростта нагоре или клауза за злоупотреба със споделен сървър; споделен хостинг плюс неукротен робот е кратко приятелство.
- robots.txt се зачита по подразбиране; -e robots=off го заменя умишлено и използването на тази замяна срещу производствения сайт на някой друг е начинът, по който груповите изтегляния се превръщат в билети за инциденти.
- wget -O /dev/null -nv https://host/health е едноредова мониторингова сонда, чиито изходни кодове носят диагнозата: 4 е мрежова повреда, 8 е сървърна грешка и и двете бият безшумен cron.
- Преобразуването има значение след факта: --convert-links пренаписва огледален сайт за офлайн навигация, а --adjust-extension запазва генерираните от CMS страници под разширения, които местните инструменти могат да обслужват.
- Груповите задания в cron получават заключващи файлове или припокриващи се изпълнения записват взаимно в полузавършени файлове, докато --waitretry тихо разтяга заданието след прозореца; wget няма вътрешен mutex.
- Познайте границата: формуляри, сесии с много бисквитки и крайни точки на API принадлежат на curl, а изградените от JavaScript страници се отразяват като празни черупки, защото wget следва връзки, а не скриптове.
Бележка от терен
Едно огледало без --no-parent се скиташе в четиридесет гигабайта от медийната библиотека на клиента за една нощ и почти запълни диска. Флаговете за учтивост се задават веднъж и след това се копират завинаги.
Често задавани въпроси
Защо моето огледало съдържа само една страница?
Флаговете за обхват свършиха работата, която някой възнамеряваше да отмени: ограничения на robots.txt, --no-parent, ограничение на дълбочината или сайтът се изобразява с JavaScript. wget следва връзки, които може да види; проверете -o wget.log преди да обвините инструмента.
Кога трябва да избера wget вместо curl за едно изтегляне?
За всичко, което може да бъде възобновено или надеждно на cron: -c продължаване, вградени повторни опити и времево клеймо (--timestamping) правят wget изборът за ниско внимание; curl ви дава същото само ако го сглобите сами.
Законно ли е или учтиво да отразявате публичен сайт?
Собствеността решава законно, robots.txt и load решават учтиво: почетете файла robots, намалете до човешка скорост и предпочетете официален експорт или API в момента, в който целта предложи такъв.
Защо някои сайтове връщат 403 към обикновен wget?
Филтриране на потребителски агент, обикновено умишлено; --user-agent='Mozilla/5.0' ви превежда, но филтриран 403 също означава, че операторът наблюдава, така че диалог или API е по-добрата следваща стъпка.
Как Kinetikatech помага с linux команди и умения за командни обвивки
Правили сме това стотици пъти: Командите и скриптовите навици, които решават дали администраторът управлява сървър или се бори с него: търсене, трансформиране, прехвърляне и надзор на текст и процеси с инструментите, които се намират във всяка основна инсталация. С Сигурност на Linux сървъра и Сървърна администрация получавате пълния цикъл: оценяваме, внедряваме, следим непрекъснато и реагираме до 30 минути, когато е нужно.