Comandi Linux e competenze della shell
wget: Il downloader che non dorme mai
wget è curl per lavori misurati in ore: mirror, archivi, pull ricorsivi e batch cron che vengono eseguiti mentre nessuno guarda. È ricorsivo, rispetta robots.txt, riprende i trasferimenti interrotti per impostazione predefinita e si adatta a limiti di velocità e intervalli di attesa, che è un ricciolo di cortesia lasciato al chiamante. Tra i due strumenti la divisione è netta: wget per volume e pazienza, curl per precisione e un team che li conosce entrambi raramente ha bisogno di un terzo installatore.
Punti chiave
- Il mirroring è una riga: wget --mirror --convert-links --adjust-extension --no-parent https://docs.example.com; ometti --no-parent e un archivio di documentazione diventa silenziosamente una scansione di tutto ciò che è sopra di esso.
- Riprendi e riprova gratuitamente: wget -c riprende un trasferimento interrotto e --tries=10 --waitretry=5 elimina i server che si bloccano a metà invece di fallire il lavoro alla prima contrazione.
- La cortesia ha flag: --limit-rate=200k, --wait=1 e --random-wait impediscono a un mirror di superare i limiti di velocità upstream o una clausola di abuso del server condiviso; l'hosting condiviso e un crawler senza limitazioni sono un'amicizia breve.
- robots.txt è rispettato per impostazione predefinita; -e robots=off lo sovrascrive deliberatamente e l'utilizzo di tale sostituzione contro il sito di produzione di qualcun altro è il modo in cui i download in blocco si trasformano in ticket di incidente.
- wget -O /dev/null -nv https://host/health è una sonda di monitoraggio a una riga i cui codici di uscita riportano la diagnosi: 4 è un errore di rete, 8 è un errore del server ed entrambi battono un cron silenzioso.
- La conversione è importante a posteriori: --convert-links riscrive un sito con mirroring per la navigazione offline e --adjust-extension salva le pagine generate dal CMS sotto le estensioni che gli strumenti locali possono servire.
- I lavori di massa in cron ottengono file di blocco, oppure le esecuzioni sovrapposte scrivono nei file semifiniti degli altri mentre --waitretry allunga silenziosamente il lavoro oltre la sua finestra; wget non ha mutex interno.
- Conoscere il confine: moduli, sessioni pesanti di cookie ed endpoint API appartengono a curl e le pagine create in JavaScript si rispecchiano come shell vuote perché wget segue i collegamenti, non gli script.
Nota dal campo
Un mirror senza --no-parent è entrato in quaranta gigabyte nella libreria multimediale di un cliente durante la notte e ha quasi riempito il disco. I flag di cortesia vengono impostati una volta e poi copiati per sempre.
Domande frequenti
Perché il mio mirror contiene solo una pagina?
I flag di ambito hanno svolto il lavoro che qualcuno intendeva annullare: restrizioni del file robots.txt, --no-parent, un limite di profondità o il sito sottoposto a rendering JavaScript. wget segue i collegamenti che può vedere; controlla -o wget.log prima di incolpare lo strumento.
Quando dovrei scegliere wget su curl per un singolo download?
Per qualsiasi cosa ripristinabile o affidabile da cron: -c continuazione, tentativi incorporati e timestamp (--timestamping) rendono wget la scelta di intervallo di bassa attenzione; curl ti dà lo stesso solo se lo assembli tu stesso.
È legale o educato eseguire il mirroring di un sito pubblico?
La proprietà decide in modo legale, robots.txt e il caricamento decidono in modo educato: onora il file robots, limitalo a un ritmo umano e preferisci un'esportazione o un'API ufficiale nel momento in cui il target ne offre una.
Perché alcuni siti restituiscono 403 al semplice wget?
Filtraggio dello user-agent, solitamente intenzionale; --user-agent='Mozilla/5.0' ti aiuta, ma un 403 filtrato significa anche che l'operatore sta guardando, quindi un dialogo o un'API è il passo successivo migliore.
Come Kinetikatech aiuta con comandi linux e competenze della shell
Questo è ciò che facciamo ogni giorno: I comandi e le abitudini di scripting che decidono se un amministratore gestisce un server o lo combatte: cerca, trasforma, trasferisci e supervisiona testo e processi con gli strumenti presenti in ogni installazione di base. Il nostro servizio Sicurezza server Linux e Gestione server lo copre dall'inizio alla fine: valutazione, implementazione, monitoraggio 24/7 e risposta di emergenza in 30 minuti.