I comandi *nix curl
e wget
sono utili per accedere agli URL senza ricorrere a un browser. Entrambi i comandi consentono di trasferire dati da un server di rete, con curl
essendo il più robusto dei due. Puoi usarne uno qualsiasi per automatizzare i download da vari server.
Il comando arricciatura
Come accennato, il curl
comando consente di trasferire i dati da un server di rete, ma consente anche di spostare i dati su un server di rete. Oltre a HTTP, puoi utilizzare altri protocolli, inclusi HTTPS, FTP, POP3, SMTP e Telnet. Gli amministratori di solito si affidano a curl
per interagire con le API utilizzando i metodi DELETE, GET, POST e PUT, come spiegato qui.
La sintassi per curl
è abbastanza semplice a prima vista. Ecco un esempio:
$ curl http://www.example.com/help.txt
Opzioni arricciatura
Puoi fornire varie opzioni alla sintassi dei comandi:
curl [options] [url]
Sono le opzioni che fanno curl
così robusto. Di seguito sono elencate alcune delle opzioni disponibili utilizzate con curl
ed esempi del loro utilizzo.
-a, --append
Quando carichi un file, questa opzione ti consente di aggiungere il file di destinazione invece di sovrascriverlo (FTP, SFTP).
$ curl --append file.txt ftp://ftp.example.com/file.txt
--timeout connessione
Il --connect-timeout
l'opzione imposta il tempo massimo in secondi che curl
può utilizzare per effettuare la connessione al server remoto. Questa opzione è utile per evitare che la connessione si concluda troppo rapidamente e per ridurre al minimo la quantità di tempo in cui si desidera che il comando tenti di connettersi.
$ curl --connect-timeout 600 http://www.example.com/
--server-dns
Questa opzione ti consente di elencare i server DNS curl
dovrebbe usare invece dell'impostazione predefinita del sistema. Questo elenco può essere utile durante la risoluzione dei problemi DNS o se è necessario risolvere un indirizzo su un server dei nomi specifico.
$ curl --dns-servers 8.8.8.8 http://www.example.com/
--http3
Puoi specificare in modo specifico a curl di utilizzare il protocollo http3 per connettersi all'host e alla porta forniti con un URL https. --http2 e --http1.1 funzionano allo stesso modo e possono essere utilizzati per verificare un server web.
$ curl --http3 http://www.example.com:8080/
--output
Se devi recuperare un file da un server remoto tramite un URL, --output
è un modo semplice per salvare il file in locale.
$ curl http://www.example.com/help.txt --output file.txt
--barra di avanzamento
Questa opzione mostra lo stato di avanzamento del trasferimento del file se combinata con il --output
opzione.
$ curl --progress-bar http://www.example.com/help.txt --output file.txt
--sslv2
Come con HTTP, puoi specificare in modo specifico a curl di utilizzare un'opzione SSL specifica per il comando a cui connettersi e in questo caso stiamo specificando la versione 2. --ssl specifica che deve essere utilizzato SSL e --sslv3 specifica SSL versione 3. Nota:sslv2 e sslv3 sono considerati legacy dal manutentore sebbene ancora disponibili.
$ curl --sslv2 https://www.example.com/
--prolisso
Il --verbose
opzione con curl
è utile per eseguire il debug e visualizzare cosa sta succedendo durante la chiamata all'URL.
$ curl --verbose http://www.example.com
Il comando wget
A differenza di curl
, il wget
il comando è esclusivamente per il recupero di informazioni da un server remoto. Per impostazione predefinita, le informazioni ricevute vengono salvate con lo stesso nome dell'URL fornito.
Ecco un esempio del wget
di base sintassi:
$ wget http://www.example.com/help.txt
wget Opzioni
Come curl
, puoi fornire varie opzioni al tuo wget
sintassi del comando:
wget [option] [url]
--dns-servers=INDIRIZZI
Puoi specificare uno o più server DNS specifici da utilizzare quando utilizzi wget
per accedere a un server remoto. La sintassi, tuttavia, è diversa se l'opzione e gli indirizzi del server dei nomi sono uniti con un =.
$ wget --dns-servers=8.8.8.8 http://www.example.com
-O
Per salvare un file con un nuovo nome quando si utilizza wget
, utilizza il --output-document
opzione, o più semplicemente -O
.
$ wget http://www.example.com/help.txt -O file.txt
--progress=tipo
Con wget
, è possibile fornire un tipo (punto o barra) per determinare l'immagine ASCII della barra di avanzamento. Se un tipo non è specificato, verrà impostato automaticamente su punto.
$ wget --progress=dot http://www.example.com
Concludi
Il curl
e wget
i comandi possono essere molto utili se aggiunti agli script per scaricare automaticamente i pacchetti RPM o altri file. Questo post tocca solo alcune delle caratteristiche più comuni di ciò che questi comandi possono fare. Controlla le relative pagine man per un elenco completo delle opzioni disponibili per entrambi curl
e wget
.
[ Vuoi testare le tue capacità di amministratore di sistema? Fai una valutazione delle abilità oggi. ]