Introduzione

GNU Wget è un'utility della riga di comando per il download di file dal Web. Con Wget, puoi scaricare file utilizzando i protocolli HTTP, HTTPS e FTP. Wget offre una serie di opzioni che ti consentono di scaricare più file, riprendere i download, limitare la larghezza di banda, download ricorsivi, scaricare in background, eseguire il mirroring di un sito Web e molto altro.

In questo tutorial, ti mostreremo come utilizzare il comando Wget attraverso esempi pratici e spiegazioni dettagliate delle opzioni Wget più comuni.

Installare Wget

Il pacchetto wget è preinstallato sulla maggior parte delle distribuzioni Linux oggi.

Per verificare se il pacchetto Wget è installato sul tuo sistema, apri la tua console, digita wget e premi Invio. Se hai installato wget, il sistema stamperà wget: missing URL, altrimenti stamperà wget command not found.

Se wget non è installato, puoi installarlo facilmente usando il gestore pacchetti della tua distribuzione.

Installazione di Wget su Ubuntu e Debian

sudo apt update
sudo apt install wget

Installazione di Wget su CentOS e Fedora

sudo yum install wget

Sintassi del comando Wget

Prima di andare su come utilizzare il comando wget, iniziamo esaminando la sintassi di base.

Le espressioni del comando wget assumono la forma seguente:

wget [options] [url]
  • options- Le opzioni di Wget.
  • url - URL del file o della directory che si desidera scaricare o sincronizzare.

Come scaricare un file con Wget

Nella sua forma più semplice se usato senza alcuna opzione, wget scaricherà la risorsa specificata nell'URL nella directory corrente.

Nel seguente esempio stiamo scaricando l'archivio tar del kernel Linux:

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.2.tar.xz

Wget inizia risolvendo l'indirizzo IP del dominio, quindi si connette al server remoto e avvia il trasferimento.

Durante il download, Wget mostra la barra di avanzamento insieme al nome del file, alle dimensioni del file, alla velocità di download e al tempo stimato per completare il download. Una volta completato il download, è possibile trovare il file scaricato nella directory di lavoro corrente.

Per disattivare l'output di Wget, utilizzare l'opzione -q.

Se il file esiste già, Wget aggiungerà .N (numero) alla fine del nome del file.

Utilizzare Wget per salvare il file scaricato con un nome diverso

Per salvare il file scaricato con un nome diverso, passa l'opzione -O seguita dal nome scelto:

wget -O latest-hugo.zip https://github.com/gohugoio/hugo/archive/master.zip

Il comando sopra salverà l'ultimo file zip hugo da GitHub come latest-hugo.zip invece del suo nome originale.

Utilizzare Wget per scaricare un file in una directory specifica

Per impostazione predefinita, Wget salverà il file scaricato nella directory di lavoro corrente. Per salvare il file in un percorso specifico, utilizzare l'opzione -P:

wget -P /mnt/iso http://mirrors.mit.edu/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso

Con il comando sopra stiamo dicendo a Wget di salvare il file iso CentOS 7 nella directory /mnt/iso.

Come limitare la velocità di download con Wget

Per limitare la velocità di download, utilizzare l'opzione --limit-rate. Per impostazione predefinita, la velocità è misurata in byte/secondo. Aggiungi k per kilobyte, m per megabyte e g per gigabyte.

Il seguente comando scaricherà il binario Go e limiterà la velocità di download a 1 MB:

wget --limit-rate=1m https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

Questa opzione è utile quando non si desidera che wget consumi tutta la larghezza di banda disponibile.

Come riprendere un download con Wget

È possibile riprendere un download utilizzando l'opzione -c. Ciò è utile se la connessione si interrompe durante il download di un file di grandi dimensioni e invece di avviare il download da zero, è possibile continuare con quello precedente.

Nel seguente esempio riprendiamo il download del file iso Ubuntu 18.04:

wget -c http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

Se il server remoto non supporta il ripristino dei download, Wget avvierà il download dall'inizio e sovrascriverà il file esistente.

Come scaricare in background con Wget

Per scaricare in background, utilizzare l'opzione -b. Nel seguente esempio, stiamo scaricando il file iso OpenSuse in background:

wget -b https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso

Per impostazione predefinita, l'output viene reindirizzato al file wget-log nella directory corrente. Per vedere lo stato del download, utilizzare il comando tail:

tail -f wget-log

Come modificare Wget User-Agent di Wget

A volte durante il download di un file, il server remoto può essere impostato per bloccare Wget User-Agent. In situazioni come questa per emulare un browser diverso utilizzare l'opzione -U.

wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" http://wget-forbidden.com/

Il comando sopra emulerà Firefox 60 richiedendo la pagina da wget-forbidden.com

Come scaricare più file con Wget

Se si desidera scaricare più file contemporaneamente, utilizzare l'opzione -i seguita dal percorso di un file locale o esterno contenente un elenco degli URL da scaricare. Ogni URL deve essere su una riga separata.

Nel seguente esempio stiamo scaricando i file ISO di Arch Linux, Debian e Fedora con gli URL specificati nel file linux-distros.txt:

wget -i linux-distros.txt
http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso
https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
https://download.fedoraproject.org/pub/fedora/linux/releases/28/Server/x86_64/iso/Fedora-Server-dvd-x86_64-28-1.1.iso

Se si specifica - come nome file, gli URL verranno letti dall'input standard.

Utilizzare Wget per il download tramite FTP

Per scaricare un file da un server FTP protetto da password, specificare nome utente e password come mostrato di seguito:

wget --ftp-user=FTP_USERNAME --ftp-password=FTP_PASSWORD ftp://ftp.example.com/filename.tar.gz

Utilizzare Wget per creare un mirror di un sito Web

Per creare un mirror di un sito Web con Wget, utilizzare l'opzione -m. Ciò creerà una copia locale completa del sito Web seguendo e scaricando tutti i collegamenti interni e le risorse del sito Web (JavaScript, CSS, Immagini).

wget -m https://example.com

Se si desidera utilizzare il sito Web scaricato per la navigazione locale, sarà necessario passare alcuni argomenti aggiuntivi al comando sopra.

wget -m -k -p https://example.com

L'opzione -k consentirà a Wget di convertire i collegamenti nei documenti scaricati per renderli adatti alla visualizzazione locale. L'opzione -p dirà a wget di scaricare tutti i file necessari per visualizzare la pagina HTML.

Come saltare il controllo del certificato con Wget

Se si desidera scaricare un file su HTTPS da un host con un certificato SSL non valido, utilizzare l'opzione --no-check-certificate:

wget --no-check-certificate https://domain-with-invalid-ss.com

Come scaricare in output standard con Wget

Nel seguente esempio, Wget scaricherà (opzione -q)  in modo silenzioso e invierà l'ultima versione di WordPress a stdout (opzione  -O -) e la inoltrerà all'utility tar che estrarrà l'archivio nella directory /var/www.

wget -q -O - "http://wordpress.org/latest.tar.gz" | tar -xzf - -C /var/www

Conclusione

Con Wget puoi scaricare più file, riprendere download parziali, siti Web mirror e combinare le opzioni di Wget in base alle tue esigenze.

Per saperne di più su Wget visita la pagina del manuale di wget GNU.