Introduzione

wget è un tool comune per gestire i server UNIX / Linux / BSD  in remoto tramite sessione ssh. Potrebbe essere necessario scaricare il software o altri file per l'installazione. Esistono anche alcuni download manager grafici per sistemi operativi Linux e UNIX:

  • kget: KGet è un gestore di download versatile e intuitivo per il sistema desktop KDE.
  • gwget / gwget2: Gwget è un gestore di download per Gnome Desktop
  • uget - gestore di download facile da utilizzare scritto in GTK +

wget non dispone di un interfaccia grafica. Supporta HTTP, FTP, HTTPS e altri protocolli insieme a funzionalità di autenticazione e molte altre opzioni.

Come installare il comando wget su Linux

Usa il comando apt / apt-get se utilizzi Ubuntu / Debian / Mint Linux:

sudo apt install wget

L'utente Fedora Linux deve digitare il comando dnf

sudo dnf install wget

L'utente RHEL / CentOS / Oracle Linux deve digitare il comando yum :

sudo dnf install wget

L'utente  SUSE / OpenSUSE Linux deve digitare il comando zypper :

zypper install wget

L'utente ArchLinux deve digitare il comando pacman:

sudo pacman -S wget

Esempi di comandi wget di Linux

Vediamo alcuni esempi comuni di comandi, sintassi e utilizzo di wget Linux. La sintassi è la seguente:

wget url
wget [options] url

Come scaricare un singolo file usando wget

Per scaricare un singolo file da riga di comando utilizzando wget, utilizzare la seguente sintassi:

wget https://noviello.it/percorso/file.tar.gz
wget ftp://ftp.noviello.it/percorso/file.tar.gz
wget -O output.file https://noviello.it/percorso/file.name.tar.gz

Come scaricare più file usando wget

Per scaricare più file simultaneamente basta semplicemente scrivere il comando più volte:

wget https://noviello.it/download/file.tar.gz ftp://ftp.noviello.it/download/file2.tar.gz ftp://ftp.noviello.it/download/file3.tar.gz


È possibile inoltre creare una variabile di shell che contiene tutti gli URL e utilizzare un loop con  BASH per scaricare tutti i file, esempio:

URL="https://noviello.it/download/file1.tar.gz \
ftp://ftp.noviello.it/download/file2.tar.gz \
ftp://ftp.noviello.it/download/file3.tar.gz \
https://noviello.it/download/file4.tar.gz"
for u in $URL
do
 wget "$u"
done

Come leggere gli URL da un file

Puoi inserire tutti gli URL in un file di testo e utilizzare l'opzione -i per wget per scaricare tutti i file. Innanzitutto, creare un file di testo:

nano /home/url.txt

Aggiungere un elenco di URL:

https://noviello.it/download/file1.tar.gz ftp://ftp.noviello.it/download/file2.tar.gz ftp://ftp.noviello.it/download/file3.tar.gz https://noviello.it/download/file4.tar.gz

Digitare il comando wget come segue:

wget -i /home/url.txt

Riprendere i download parziali

Puoi anche forzare wget per ottenere un file parzialmente scaricato, ad esempio riprendere i download . Questo è utile quando vuoi finire un download avviato da una precedente istanza di wget o da un altro programma: Nota che l' opzione funziona solo con server FTP / HTTP che supportano l'intestazione "range".

wget -c https://noviello.it/percorso/file.tar.gz
wget -c -i /home/url.txt

Come forzare wget per scaricare tutti i file in background

L'opzione -o serve per forzare wget ad andare in background immediatamente dopo l'avvio. Se non viene specificato alcun file di output tramite l'opzione -o, l'output viene reindirizzato al file wget-log:

wget -cb -o /home/url.log -i /home/url.txt

Oppure:

nohup wget -c -o /home/url.log -i /home/url.txt &

nohup esegue il dato comando (in questo esempio wget) con segnali di hangup ignorati, in modo che il comando possa continuare a essere eseguito in background dopo essersi disconnettersi.

Come limitare la velocità di download

È possibile limitare la velocità di download a un numero di byte al secondo. L'importo può essere espresso in byte, kilobyte con il suffisso k o megabyte con il suffisso m. Ad esempio, –limit-rate = 100k limiterà la velocità di download a 100KB/s. Ciò è utile quando, per qualsiasi motivo, non si desidera che Wget consumi l'intera larghezza di banda disponibile, utile, ad esempio, quando si desidera scaricare un file di grandi dimensioni:

wget -c -o /home/archivio.log --limit-rate=50k ftp://ftp.noviello.it/donwload/file.iso


utilizzare il suffisso m per megabyte (–limit-rate = 1m). È anche possibile specificare la quota del disco per il download automatico per evitare l'attacco DoS del disco. Il seguente comando verrà interrotto quando viene superata la quota (100 MB +).

wget -cb -o /home/url.log -i /home/url.txt --quota=100m

Come utilizzare wget con i siti protetti da password

È possibile fornire il nome utente e la password con il utilizzando wget nel seguente modo:

wget --http-user=vivek --http-password=PASSWORD https://noviello.it/percorso/file.tar.gz

Un altro modo per specificare nome utente e password è l'URL stesso.

wget 'https://nomeutente:[email protected]/file.tar.gz

Come scarica tutti i file con la stessa estensione dal server FTP remoto

In genere è possibile utilizzare caratteri speciali shell noti anche come caratteri jolly come *,?, [] Per specificare i criteri di selezione per i file. Lo stesso può essere utilizzato con i server FTP durante il download di file.

wget ftp://noviello.it/percorso/downloads/*.pdf

Oppure:

wget -g on ftp://noviello.it/percorso/downloads/*.pdf

Usare lftp quando hai bisogno di download multithread

lftp recupera gli URL HTTP in un modo simile a wget, ma segmenta il recupero in più parti per aumentare la velocità di download. Ottiene il file specificato utilizzando diverse connessioni. Ciò può accelerare il trasferimento, ma carica la rete con un forte impatto sugli altri utenti. Utilizzare solo se è necessario trasferire il file il prima possibile.

lftp -e 'pget -n 5 -c url/file.tar.gz; exit'

Il comando scaricherà file.tar.gz in 5 segmenti / connessioni. Notare che il comando wget è disponibile su Linux e UNIX / BSD.

Conclusione

Per maggiori informazioni sull'utilizzo del comando wget:

man wget