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.