Wget per Linux: guida all’utilizzo

by Jessica Lambiase on

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.

NOTAtutti 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

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!

L'articolo Wget per Linux: guida all’utilizzo appare per la prima volta su ChimeraRevo - Il miglior volto della tecnologia.

Leggi il contenuto originale su Linux – ChimeraRevo – Il miglior volto della tecnologia

Written by: Jessica Lambiase