Scaricare file da Internet è un’operazione tanto scontata quanto delicata: ciascuno di noi vorrebbe semplificarsi la vita ed affidarsi ad un programma in grado di gestire diversi aspetti collegati. In Linux qualcosa del genere esiste e si chiama wget. Questo piccolo programma, pesante soltanto pochi KB, è in grado di scaricare file da Internet tramite HTTP, HTTPS, FTP (e via discorrendo) e mette a disposizione dell’utente un gran numero di opzioni per la gestione dei download.
Di contro, però, c’è il fatto che wget possa essere utilizzato soltanto tramite riga di comando; ciò tuttavia non è un problema, poiché una volta imparati i parametri più utili verrà tutto abbastanza naturale! La guida che segue riguarda proprio wget: scopriremo insieme i parametri più utili da aggiungere a questo comando per raffinare ancor di più i nostri download.
NOTA: tutti i parametri che specificheremo in basso possono essere combinati ed utilizzati anche insieme, a seconda delle esigenze dell’utente.
Wget per Linux: guida all’utilizzo
- Comando di base
- Scaricare un file con nome diverso
- Scaricare in background
- Ripristinare download interrotti
- Impostare un numero massimo di tentativi
- Scaricare una lista di file
- Limitare la velocità di download
- Scaricare tramite proxy
- Scaricare un’intera directory da FTP
- Scaricare un intero sito
- Manuale e istruzioni di installazione per Windows e macOS
Comando di base
La sintassi di base di wget è semplice: da terminale, digitiamo
wget url_file_da_scaricare #esempio: wget http://www.chimerarevo.com/prova.txt
per scaricare il file nella directory corrente.
Scaricare un file con nome diverso
Per scaricare un file e dargli un nome diverso, potremo digitare
wget url_file_da_scaricare -O nuovo_nome.estensione #esempio: wget http://www.chimerarevo.com/prova.txt -O filediprova.txt
Scaricare in background
Questo comando è utile per avviare un download e chiudere il terminale oppure la connessione remota al server. Per avviare un download in background andremo a digitare
wget -b url_file_da_scaricare #esempio: wget -b http://www.chimerarevo.com/prova.txt
Ripristinare download interrotti
Questo è un comando estremamente utile per i download di file di grandi dimensioni che si interrompono da un momento all’altro (per problemi di rete, ad esempio). Invocando wget col parametro -c, l’utility controllerà l’esistenza di un file con lo stesso nome e, in caso affermativo, sarà in grado di riprendere il download da dove è stato interrotto.
wget -c url_file_da_scaricare #esempio: wget -c http://www.chimerarevo.com/prova.txt
Impostare un numero massimo di tentativi
E’ possibile “istruire” wget affinché non si fermi al fallimento di un download ma riprovi a terminarlo per un numero limitato di volte. Ciò può essere fatto con il parametro -tries: il comando in basso ritenterà 10 volte il download prima di arrendersi.
wget -tries=numeroTentativi url_file_da_scaricare #esempio: wget -tries=10 http://www.chimerarevo.com/prova.txt
Scaricare una lista di file
Creiamo un file di testo semplice (.txt) con la lista di file da scaricare, uno sotto l’altro: possiamo darla in pasto a wget affinché li scarichi tutti! Per farlo è sufficiente impostare il parametro -i:
wget -i lista_dei_file #esempio: wget -i fileDaScaricare.txt
Limitare la velocità di download
Con il parametro –limit-rate potremo impostare un limite alla velocità di download dei nostri file, opzione molto utile per non sovraccaricare la rete. Potremo usare sia l’unità di misura “k” (per kByte/s) che “m” (per MByte/s). Nel comando in basso andremo a limitare la velocità di download a 150 kBps
wget --limit-rate=limite url_file_da_scaricare #esempio: wget --limit-rate=150k http://www.chimerarevo.com/prova.txt
Scaricare tramite proxy
Questo non è un parametro da passare direttamente a wget ma una variabile d’ambiente provvisoria che wget utilizzerà per i download avviati da quel terminale; possiamo, con questo procedimento, impostare un proxy http dal quale far passare i file scaricati. Per impostare il proxy il comando è il seguente:
export http_proxy="http://serverProxy:porta" #esempio: export http_proxy="http://123.45.67.89:8080"
Con il comando in basso potremo invece usare proxy che richiedono autenticazione:
export http_proxy="http://user:pass@serverProxy:porta" #esempio: export http_proxy="http://jessica:pippopluto@123.45.67.89:8080"
Scaricare un’intera directory (ftp)
Se siamo su un ftp pubblico e desideriamo scaricare l’intero contenuto di una cartella (e delle sue sottocartelle) possiamo farlo con il parametro -r, ovvero download ricorsivo.
wget -r ftp_da_cui_scaricare/cartella #esempio: wget -r ftp://ftp.mozilla.org/releases
Scaricare un intero sito web
La sintassi di base per scaricare un intero sito web con wget (creare un mirror) è
wget -m http://indirizzo_sito
tuttavia ciò significa scaricare tutto – ma tutto – quanto collegato con il sito web, con il risultato di ritrovarsi il disco pieno di file potenzialmente inutili. Siccome wget è una utility stracolma di parametri, ne ho combinati alcuni per avvicinarci il più possibile al download dello stretto indispensabile per visualizzare correttamente un sito web. Il comando è:
wget -k -r -p -D dominio.org --restrict-file-names=sistema http://www.sitoweb.org
Diamo ora un’occhiata ai vari parametri:
- -k: permette di convertire i link web in link relativi, così che le pagine locali vengano collegate tra loro;
- -r: download ricorsivo, ovvero che si sposta nelle varie directory del sito;
- -p: download dei requisiti delle pagine (ad esempio dei fogli di stile), così che vengano visualizzate correttamente;
- -D dominio.org: download dei soli file appartenenti al dominio “dominio.org” (quindi niente link esterni);
- –restrict-file-names=sistema: download dei soli file visualizzabili dal sistema operativo specificato (windows o unix).
Dunque per scaricare l’intero sito chimerarevo.com da visualizzare su un computer Windows andremo a scrivere:
wget -k -r -p -D chimerarevo.com --restrict-file-names=windows http://www.chimerarevo.com
Al termine del processo avremo il sito pronto da consultare in una directory dedicata (nel nostro caso www.chimerarevo.com).
Infine, per riprendere il download precedentemente interrotto di un sito web potremo inserire, oltre ai parametri precedenti, anche il parametro -nc (che evita la sovrascrittura dei file già scaricati), ad esempio
wget -k -r -p -nc -D chimerarevo.com --restrict-file-names=windows http://www.chimerarevo.com
Manuale di wget ed istruzioni per Windows e macOS
Abbiamo imparato che wget è uno strumento estremamente potente e che permette di avviare download con un gran numero di parametri. Quelli che abbiamo illustrato sono i più importanti, ma un’occhiata alla pagina di manuale di wget usando il comando
man wget
potrà insegnarcene molti di più! Per dovere di cronaca specifichiamo che wget è disponibile anche su macOS e su Windows, ma va scaricato ed installato a parte. Ad esempio su macOS l’intera procedura può essere gestita da Homebrew, mentre per Windows il file d’installazione può essere scaricato da questo link – in tal caso, però, bisognerà portarsi nella cartella di wget per usare il programma dal prompt oppure aggiungere l’eseguibile alla variabile PATH. Per farlo procediamo come segue:
- clicchiamo destro su Computer (o Questo PC) > Proprietà;
- clicchiamo su Impostazioni di sistema avanzate;
- apriamo la scheda Avanzate e clicchiamo sul pulsante Variabili d’ambiente;
- cerchiamo la variabile di nome Path, clicchiamo due volte su di essa ed inseriamo la seguente stringa alla fine di quanto c’è già scritto (togliendo il punto e virgola all’inizio della stringa, se fosse già presente):
;%PROGRAMFILES(x86)\%GnuWin32\bin\wget.exe
Diamo OK dove necessario per salvare le impostazioni e riavviamo il computer. Da questo momento potremo usare wget dal prompt dei comandi!