GNU/Linux >> Linux Esercitazione >  >> Linux

Suggerimenti e trucchi per l'utilizzo del comando wget Linux

Wget è un'utilità open source da riga di comando per scaricare file e pagine Web da Internet. Ottiene i dati da Internet e li visualizza nel tuo terminale o li salva in un file. L'utilità wget non è interattiva. Puoi ottenere il massimo da esso tramite script o persino programmare download di file.

In genere, anche i browser Web come Firefox o Chromium scaricano file tranne che, per impostazione predefinita, rendono le informazioni in una finestra grafica e richiedono che un utente interagisca con essi. In alternativa, altri utenti del sistema Linux utilizzano il comando curl per trasferire i dati da un server di rete.

L'articolo illustra come utilizzare il comando wget per scaricare pagine Web e file da Internet.

Installazione di wget su Linux

Per installare wget su sistemi Linux basati su Ubuntu/Debian:

$ apt-get install wget

Per installare Wget su Red Hat/CentOS:

$ yum install wget

Per installare wget su Fedora:

$ dnf install wget

Download di un file con il comando wget

Puoi scaricare un file con wget fornendo un collegamento specifico a un URL. Se l'URL predefinito è index.html, la pagina dell'indice viene scaricata. Per impostazione predefinita, il contenuto viene scaricato in un file con lo stesso nome file nella directory di lavoro corrente. Il comando wget fornisce anche diverse opzioni per reindirizzare l'output a less o tail.

[#####@fedora ~]$ wget http://example.com | tail -n 6
--2021-11-09 12:06:02-- http://example.com/
Resolving example.com (example.com)... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to example.com (example.com)|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1256 (1.2K) [text/html]
Saving to: ‘index.html.1’
index.html.1 100%[======================>] 1.23K --.-KB/s in 0s
2021-11-09 12:06:03 (49.7 MB/s) - ‘index.html.1’ saved [1256/1256]

Invio dei dati scaricati allo standard output

Puoi usare il -output-document con un trattino – carattere per inviare i dati scaricati allo standard output.

[#######@fedora ~]$ wget http://example.com --output-document - | head -n8
--2021-11-09 12:17:11-- http://example.com/
Resolving example.com (example.com)... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to example.com (example.com)|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1256 (1.2K) [text/html]
Saving to: ‘STDOUT’
<!doctype html> 0%[ ] 0 --.-KB/s 
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- 100%[======================>] 1.23K --.-KB/s in 0s
2021-11-09 12:17:12 (63.5 MB/s) - written to stdout [1256/1256]

Salvataggio dei download con un nome file diverso

È possibile utilizzare l'opzione –output-document o -O per specificare un nome di file di output diverso per il download.

$ wget http://fosslinux.com --output-document foo.html
$ wget http://fosslinux.com -O foofoofoo.html

Download di una sequenza di file

Wget può scaricare diversi file se si conosce la posizione e il modello del nome file dei file. Puoi utilizzare la sintassi Bash per specificare un intervallo di numeri interi per rappresentare una sequenza di nomi di file dall'inizio alla fine.

$ wget http://fosslinux.com/filename_{1..7}.webp

Download di più pagine e file

Puoi scaricare più file con il comando wget specificando tutti gli URL contenenti i file da scaricare.

$ wget URL1 URL2 URL3

Ripresa di un download parziale

Se stai scaricando file di grandi dimensioni, potrebbero esserci delle interruzioni nel download. Wget può determinare dove si è interrotto il download prima che continui con il download parziale. È utile se stai scaricando file di grandi dimensioni come un ISO distro Fedora 35 Linux. Per continuare un download, usa l'opzione –continue o -c.

$ wget --continue https://fosslinux.com/foss-linux-distro.iso

Gestione dei download ricorsivi con il comando wget

Utilizzare l'opzione –recursive o -r per attivare i download ricorsivi con il comando wget. La modalità ricorsiva di wget esegue la scansione dell'URL di un sito fornito e segue tutti i collegamenti fino al livello di profondità massimo predefinito o specificato.

$ wget -r fosslinux.com

Per impostazione predefinita, la profondità di download ricorsiva massima è 5. Tuttavia, wget fornisce l'opzione -l per specificare la profondità di ricorsione massima.

$ wget -r -l 11 fosslinux.com

È possibile specificare la ricorsione infinita con l'opzione '-l 0'. Ad esempio, wget scaricherà tutti i file su un sito Web se imposti la profondità massima su zero (-l 0).

Conversione dei link per la visualizzazione locale

Il –convert-links è un'altra opzione essenziale di wget che converte i collegamenti per renderli adatti alla visualizzazione locale.

$ wget -r l 3 --convert-links fosslinux.com

Download di tipi di file specifici

È possibile utilizzare l'opzione -A con il comando wget per scaricare tipi di file specifici durante i download ricorsivi. Ad esempio, utilizza il seguente comando wget per scaricare file pdf da un sito Web.

$ wget -A '*.pdf -r fosslinux.com

Nota che il livello di profondità di recupero massimo ricorsivo è limitato a 5 per impostazione predefinita.

Download di file dal server FTP

Il comando wget può tornare utile quando devi scaricare file da un server FTP.

$ wget --ftp-user=username --ftp-password=password ftp://192.168.1.13/foofoo.pdf

Nell'esempio sopra, wget scaricherà "foofoo.pdf" dal server FTP situato in 192.168.1.10.

Puoi anche usare l'opzione -r ricorsiva con il protocollo FTP per scaricare file FTP in modo ricorsivo.

$ wget -r --ftp-user=username --ftp-password=pass ftp://192.168.1.13/

Impostazione della dimensione massima del download con il comando wget

È possibile impostare la dimensione massima del download durante i recuperi di file ricorsivi utilizzando l'opzione flag –quota. È possibile specificare la dimensione del download in byte (predefinito), kilobyte (suffisso k) o megabyte (suffisso m). Il processo di download verrà interrotto al superamento del limite.

$ wget -r --quota=1024m fosslinux.com

Tieni presente che le quote di download non influiscono sul download di un singolo file.

Impostazione del limite di velocità di download con il comando wget

Puoi anche utilizzare l'opzione flag wget –limit-rate per limitare la velocità di download durante il download di file. Ad esempio, il comando seguente scaricherà il file "foofoo.tar.gz" e limiterà la velocità di download a 256 KB/s.

$ wget --limit-rate=256k URL/ foofoo.tar.gz

Tieni presente che puoi esprimere la velocità di download desiderata in byte (nessun suffisso), kilobyte (usando il suffisso k) o megabyte (usando il suffisso m).

Mirroring di un sito Web con il comando wget

Puoi scaricare o eseguire il mirroring di un intero sito, inclusa la sua struttura di directory con l'opzione –mirror. Il mirroring di un sito è simile al download ricorsivo senza un livello di profondità massimo. Puoi anche utilizzare l'opzione –recursive –level inf –timestamping –no-remove-listing, il che significa che è infinitamente ricorsivo.

Puoi anche usare wget per archiviare un sito con le opzioni –no-cookies –page-requisiti –convert-links. Scaricherà pagine complete e assicurerà che la copia del sito sia autonoma e simile al sito originale.

$ wget --mirror --convert-links fosslinux.com 
$ wget -recursive --level inf --timestamping –no-remove-listing

Tieni presente che l'archiviazione di un sito scaricherà molti dati soprattutto se il sito Web è vecchio.

Lettura di URL da un file di testo

Il comando wget può leggere più URL da un file di testo usando l'opzione -i. Il file di testo di input può contenere più URL, ma ogni URL deve iniziare in una nuova riga.

$ wget -i URLS.txt

Espansione di un URL abbreviato

Puoi utilizzare l'opzione wget –max-redirect per guardare gli URL abbreviati prima di visitare. Gli URL abbreviati sono essenziali per la stampa o sui social network con limiti di caratteri. Inoltre, gli URL abbreviati possono anche essere sospetti perché la loro destinazione è nascosta per impostazione predefinita.
Nota:una pratica migliore consiste nel combinare l'opzione –head e –location per visualizzare le intestazioni HTTP e svelare la destinazione finale dell'URL. Ti consente di sbirciare in un URL abbreviato senza caricare l'intera risorsa.

[######@fedora ~]$ wget --max-redirect 0 https://t.co/GVr5v9554B?amp=1
--2021-11-10 16:22:08-- https://t.co/GVr5v9554B?amp=1
Resolving t.co (t.co)... 104.244.42.133, 104.244.42.69, 104.244.42.5, ...
Connecting to t.co (t.co)|104.244.42.133|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://bit.ly/ [following]
0 redirections exceeded.

Nota:la destinazione prevista viene mostrata sulla riga di output che inizia con posizione.

Modifica delle intestazioni HTML

Le informazioni sull'intestazione HTTP sono una delle informazioni sui metadati incorporati nei pacchetti che i computer inviano per comunicare durante lo scambio di dati. Ad esempio, ogni volta che visiti un sito Web, il tuo browser invia le intestazioni delle richieste HTTP. Puoi usare l'opzione –debug per rivelare le informazioni di intestazione che wget invia al tuo browser per ogni richiesta.

[#####@fedora ~]$ wget --debug fosslinux.com
DEBUG output created by Wget 1.21.1 on linux-gnu.
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.21.1
Accept: */*
Accept-Encoding: identity
Host: fosslinux.com
Connection: Keep-Alive
---request end---
HTTP request sent, awaiting response...
---response begin---

Visualizzazione delle intestazioni delle risposte con il comando wget

Puoi utilizzare l'opzione –debug per visualizzare le informazioni sull'intestazione della risposta nelle risposte di ritorno.

[#####@fedora ~]$ wget --debug fosslinux.com
…..
---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 10 Nov 2021 13:36:29 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Cache: HIT
---response end---
200 OK

Rispondere a un codice di risposta 301

I codici di stato della risposta HTTP sono essenziali per gli amministratori web. In genere, un codice di stato della risposta HTTP 301 significa che un URL è stato spostato in modo permanente in una posizione diversa. Per impostazione predefinita, wget segue i reindirizzamenti. Tuttavia, puoi usare l'opzione –max-redirect per determinare cosa fa wget quando incontra una risposta 301. Ad esempio, puoi impostarlo su 0 per indicare a wget di non seguire reindirizzamenti.

[######@fedora ~]$ wget --max-redirect 0 https://fosslinux.com
--2021-11-10 16:55:54-- https://fosslinux.com/
Resolving fosslinux.com (fosslinux.com)... 67.205.134.74, 2604:a880:400:d0::4bfe:a001
Connecting to fosslinux.com (fosslinux.com)|67.205.134.74|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.fosslinux.com/ [following]
0 redirections exceeded.

Salvataggio dell'output dettagliato di wget in un file di registro

Per impostazione predefinita, wget mostra un output dettagliato sul terminale Linux. Tuttavia, puoi utilizzare l'opzione -o per registrare tutti i messaggi di output in un file di registro specificato.

$ wget -o foofoo_log.txt fosslinux.com

Il comando wget sopra salverà l'output dettagliato nel file "foofoo_log.txt".

Esecuzione del comando wget come ragnatela

Puoi fare in modo che il comando wget funzioni come un ragno web usando l'opzione –spider. In sostanza, non scaricherà nessuna pagina web ma controllerà solo che ci siano. Inoltre, verranno segnalati eventuali URL non funzionanti.

$ wget -r --spider fosslinux.com

Esecuzione del comando wget in background

È possibile utilizzare l'opzione -b / –background per eseguire il processo wget in background. È essenziale se stai scaricando file di grandi dimensioni il cui completamento richiederà più tempo.

$ wget -b fosslinux.com/latest.tar.gz

Per impostazione predefinita, l'output del processo wget viene reindirizzato a "wget-log". Tuttavia, puoi specificare un file di registro diverso con l'opzione -o.

Per monitorare il processo wget, usa il comando tail.

$ tail -f wget-log

Eseguire wget in modalità debug

Quando esegui wget in modalità di debug, l'output include informazioni sul server remoto come le intestazioni delle richieste wget e le intestazioni delle risposte. Le intestazioni di richiesta e risposta sono essenziali per gli amministratori di sistema e gli sviluppatori web.

$ wget --debug fosslinux.com

Cambiare User-Agent il comando wget

È possibile modificare l'agente utente predefinito con l'opzione –user-agent. Ad esempio, puoi usare 'Mozilla/4.0' come wget User-Agent per recuperare fosslinux.com con il seguente comando.

$ wget --user-agent='Mozilla/4.0' fosslinux.com

Ulteriori informazioni su suggerimenti e trucchi di wget dalle pagine di manuale ufficiali di wget.

Conclusione

Il comando wget di Linux fornisce un modo efficiente per estrarre e scaricare dati da Internet senza utilizzare un browser. Proprio come il versatile comando curl, wget può gestire qualsiasi scenario di download complesso come download di file di grandi dimensioni, download non interattivi e download di file multipli.


Linux
  1. 7 trucchi pratici per usare il comando wget di Linux

  2. Suggerimenti e trucchi per l'utilizzo di CUPS per la stampa con Linux

  3. 10 interessanti trucchi e suggerimenti per la riga di comando di Linux che vale la pena conoscere

  4. Suggerimenti e trucchi per le variabili di ambiente Linux

  5. Suggerimenti e trucchi per Linux .htaccess

Come scaricare file con il comando Wget in Linux

Suggerimenti e trucchi per usare Ctrl+Z in Ubuntu Linux

19 Suggerimenti e trucchi utili per la riga di comando di Linux

10 fantastici suggerimenti e trucchi Debian

Suggerimenti e trucchi per la riga di comando di Netstat

Come scaricare file in Rocky Linux 8 sulla riga di comando usando wget