Introduzione
Il comando Wget è un'utilità della riga di comando di Linux che ci aiuta a scaricare i file dal web. Possiamo scaricare i file dai server web utilizzando i protocolli HTTP, HTTPS e FTP. Possiamo usare wget negli script e nei cronjob.
Qui non interattivo significa che può funzionare in background, mentre l'utente non è connesso. Quando eseguiamo l'installazione minima delle distribuzioni Linux, il comando wget non è installato, quindi per installare wget sulle distribuzioni Linux, esegui
$ sudo yum install -y wget for CentOS 7 / RHEL 7
$ sudo dnf install -y wget for CentOS 8/ RHEL 8/ Rocky Linux 8
$ sudo apt install -y wget for Ubuntu / Debian
$ sudo pacman -S wget for Arch Linux
$ sudo zypper install wget for OpenSUSE
Download di un singolo file con wget
[unixcop@rhel-pc ~]$ wget https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
--2021-08-13 04:24:05-- https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Resolving releases.ubuntu.com (releases.ubuntu.com)... 91.189.91.124, 91.189.91.123, 2001:67c:1562::28, ...
Connecting to releases.ubuntu.com (releases.ubuntu.com)|91.189.91.124|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2877227008 (2.7G) [application/x-iso9660-image]
Saving to: ‘ubuntu-20.04.2.0-desktop-amd64.iso’
ubuntu-20.04.2.0-desktop-amd64.iso 47%[======= ] 4.3G 2.13M/s eta 1h 02m
Questo comando scaricherà il file ISO di Ubuntu nella directory di lavoro corrente dell'utente.
Riprendi il file parzialmente scaricato
Usando l'opzione '-c' nel comando wget possiamo riprendere il nostro download da dove è stato disconnesso.
[unixcop@rhel-pc ~]$ wget -c https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Scarica i file in background
Usa l'opzione '-b' nel comando wget per scaricare i file in background
[unixcop@rhel-pc ~]$ wget -b https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
Continuing in background, pid 2412.
Output will be written to ‘wget-log’.
[unixcop@rhel-pc ~]$
Usa anche il comando tail per visualizzare lo stato del download.
[unixcop@rhel-pc ~]$ tail -f wget-log
2700K .......... .......... .......... .......... .......... 0% 85.8K 16h41m
2750K .......... .......... .......... .......... .......... 0% 90.0K 16h32m
2800K .......... .......... .......... .......... .......... 0% 78.8K 16h25m
2850K .......... .......... .......... .......... .......... 0% 189K 16h13m
2900K .......... .......... .......... .......... .......... 0% 92.4K 16h5m
2950K .......... .......... .......... .......... .......... 0% 89.7K 15h57m
3000K .......... .......... .......... .......... .......... 0% 92.8K 15h50m
3050K .......... .......... .......... .......... .......... 0% 177K 15h39m
3100K .......... .......... .......... .......... .......... 0% 91.2K 15h32m
3150K .......... .......... .......... .......... .......... 0% 96.0K 15h25m
3200K .......... .......... .......... .......... .......... 0% 79.6K 15h20m
3250K .......... .......... .......... .......... .......... 0% 199K 15h9m
3300K .......... .......... .......... .......... .......... 0% 97.7K 15h3m
3350K .......... .......... .......... .......... .......... 0% 94.6K 14h57m
3400K .......... .......... .......... .......... .......... 0% 95.8K 14h51m
3450K .......... .......... .......... .......... .......... 0% 96.0K 14h45m
3500K .......... .......... .......... .......... .......... 0% 102K 14h39m
3550K .......... .......... .......... .......... .......... 0% 153K 14h31m
3600K .......... .......... .......... .......... .......... 0% 62.1K 14h29m
3650K .......... .......... .......... .......... .......... 0% 109K 14h23m
3700K .......... .......... .......... .......... .......... 0% 83.1K 14h19m
3750K .......... .......... .......... .......... .......... 0% 118K 14h13m
3800K .......... .......... .......... .......... .......... 0% 104K 14h8m
3850K .......... .......... .......... .......... .......... 0% 112K 14h2m
etc..
Limita la velocità di download durante il download dei file
Puoi limitare la velocità di download utilizzando l'opzione "–limit-rate".
[unixcop@rhel-pc ~]$ wget --limit-rate=350k https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
abbiamo impostato il limite di download a 350.000.
Scarica più file
Per prima cosa crea un file di testo e aggiungi tutti gli URL in quel file di testo come mostrato di seguito:
[unixcop@rhel-pc ~]$ cat wget-download-list.txt
http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.4-x86_64-minimal.iso
[unixcop@rhel-pc ~]$
Ora esegui :
[unixcop@rhel-pc ~]$ wget -i wget-download-list.txt
--2021-08-13 04:36:46-- http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
Resolving centos.mirror.server24.net (centos.mirror.server24.net)... 217.70.144.100, 2001:1a38:144::100
Connecting to centos.mirror.server24.net (centos.mirror.server24.net)|217.70.144.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9928966144 (9.2G) [application/octet-stream]
Saving to: ‘CentOS-8.4.2105-x86_64-dvd1.iso’
CentOS-8.4.2105-x86_64-dvd1.iso 4%[== ] 964M 1.9M/s eta 3h 44m
[unixcop@rhel-pc ~]$
Aumenta i tentativi di ripetizione in wget
Possiamo aumentare i tentativi di ripetizione usando l'opzione '–tries' in wget. Per impostazione predefinita, il comando wget riprova 20 volte per completare il download.
# wget --tries=60 http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
Il comando sopra farà in modo che il comando wget provi a scaricare il file massimo 60 volte.
Reindirizza l'output del comando wget a un file
Possiamo reindirizzare l'output a un file di registro utilizzando l'opzione '-o' come mostrato di seguito:
$ wget -o download_file.log http://centos.mirror.server24.net/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso
Puoi mostrarlo con
# ls
# cat download_file.log
Rispecchia un sito Web completo con il comando wget
Possiamo farlo con:
# wget --mirror -p --convert-links -P ./<Local-Folder> website-URL
Dove
- –specchio :attiva le opzioni adatte al mirroring.
- –p :scarica tutti i file per visualizzare correttamente una determinata pagina HTML.
- –convert-link :converte i collegamenti nel documento per la visualizzazione locale.
- -P ./Cartella-locale :salva tutti i file e le directory nella directory specificata.
Rifiuta i tipi di file durante il download
Quando prevedi di scaricare l'intero sito Web , possiamo forzare il comando wget a non scaricare file pdf, ad esempio utilizzando l'opzione '–rifiuta'.
# wget --reject=pdf <Website-To-Be-Downloaded>
Imposta la quota di download
Wget può interrompere il download quando la dimensione del download supera determinate dimensioni. Usa l'opzione '-Q' nel comando wget per impostare la quota di download.
# wget -Q14m -i wget-download-list.txt
Consenti a wget di sovrascrivere i file
Se specifichiamo il file di output usando l'opzione -o, sovrascriverà qualsiasi file esistente.
wget -q http://www.example.com/filename.txt -O /path/filename.txt
Scarica un file utilizzando il server FTP
Wget utilizza l'FTP anonimo per scaricare i file dal web. Non richiede accessi FTP per scaricare i file.
# wget ftp://ftp.example.com/file.tar.gz
Download del file da un sito protetto da password
# wget --ftp-user=<user-name> --ftp-password=<password> Download-URL
OR
# wget --user <user_name> --password <password> http://<url-path>/file_you_want_to_download
Un altro modo per specificare nome utente e password è nell'URL stesso.
Scarica un file da un URL sicuro non attendibile
Vuoi scaricare file dalle porte https e saltare i controlli dei certificati?
quindi può essere ottenuto utilizzando l'opzione "–no-check-certificato"
# wget https://example.com/file.tar.gz –no-check-certificate
Esempio :Scarica Oracle Java dal portale https e salta i controlli dei certificati
# wget --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/12.0.1+12/69cfe15208a647278a19ef0990eea691/jdk-12.0.1_linux-x64_bin.rpm --no-check-certificate
Download di file tramite proxy
Per prima cosa dobbiamo impostare il proxy e quindi possiamo scaricare il file da Internet. Per impostare il proxy sulla riga di comando, usa le seguenti variabili ed esporta il comando
# export http_proxy=http://<Your-Proxy-IP>:<Proxy-Port>
# export https_proxy=http://<Your-Proxy-IP>:<Proxy-Port>
# export ftp_proxy=http://<Your-Proxy-IP>:<Proxy-Port>
Nel caso in cui il nome utente e la password siano richiesti per il proxy, utilizzare :
# export http_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>
# export https_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>
# export ftp_proxy=http://<user-name>:<password>@<Your-Proxy-IP>:<Proxy-Port>
Controlla la versione di wget
Possiamo controllare la versione del comando Wget come di seguito
# wget –version
Conclusione
Wget ha un numero enorme di opzioni, ne abbiamo coperte molte.
A proposito, possiamo trovare più opzioni dalla pagina di manuale.
# man wget