Fabio Andrea Petrini

Come avviare un download in background? Facile e immediato con GNU Wget

18 Maggio 2020 Fabio Andrea Petrini

Un motivo in più per sfruttare il nostro NAS o server casalingo attraverso un potente strumento a riga di comando non interattivo.

, , , , , , , , , , , , , , , .
GNU

Può capitare di dover scaricare un file di grandi dimensioni, magari senza voler lasciare il nostro notebook o PC acceso tutta la notte. Con questo utile pretesto, introduciamo il potentissimo strumento GNU Wget, che potrete facilmente integrare nei vostri script, cron jobs e molto altro.

GNU Wget è un software libero, distribuito sotto licenza GNU/GPL, dedito allo scaricamento di file mediante i protocoli HTTP, HTTPS, FTP e FTPS.

Possiamo ritenerlo un potentissimo strumento a riga di comando non interattivo. Questa caratteristica, lo rende facilmente richiamabile da script, schedulazioni cron e account privi di interfaccia grafica.

GNU Wget ha molte funzionalità e può rendere semplice il recupero di file, anche di grandi dimensioni nonché il mirroring di interi siti Web e FTP.

Ecco una lista di caratteristiche e possibilità di cui dispone:

  • recupero dei download interrotti;
  • utilizzo di caratteri jolly nel nome file e possibilità di scaricare directory ricorsivamente;
  • messaggi di file NLS-based per molte lingue diverse;
  • conversione dei link assoluti in documenti scaricati con path relativi, in modo che si possano essere “linkati” a livello locale;
  • funzionamento sulla maggior parte dei sistemi operativi UNIX-like e su Microsoft Windows;
  • supporto di proxy HTTP;
  • supporto dei cookie HTTP;
  • supporto connessioni HTTP persistenti;
  • esecuzione in background/unattendend: operazioni che possono essere eseguite per lunghi periodi di tempo e senza interazione con l’utente;
  • utilizza i file locali come “timestamp” per determinare se i documenti devono essere riscaricati nuovamente per il mirroring;
  • è distribuito sotto la GNU General Public License, ovvero una licenza copyleft per il software libero che basa il suo spirito sul fatto che un’opera deve rimanere “libera”, ovvero in possesso delle quattro libertà fondamentali.

Dopo questa breve introduzione, il cui approfondimento può essere svolto direttamente nelle pagine della documentazione ufficiale di Wget, passiamo al nostro specifico caso:

vogliamo scaricare un file di grandi dimensioni, magari facendo uso di una connessione non sempre stabile e senza tenere acceso il nostro pc/workstation principale. A tal proposito vogliamo sfruttare il nostro NAS (perennemente acceso) o un il classico PC che usiamo come “muletto”.

 

Basterà connetterci quindi alla shell del dispositivo che vogliamo utilizzare e accertarci che wget sia installato:

wget --version

eventualmente potremo facilmente installarlo nel seguente modo, se siamo in presenza di un sistema ubuntu-based:

sudo apt-get install wget

veniamo quindi al comando di nostro interesse:

wget --retry-connrefused -bqc https://speed.hetzner.de/10GB.bin

dove:

–retry-confused è l’opzione che indica di riconnettersi anche se il precedente tentativo non è andato a buon fine, quindi, Wget continuerà, in modo efficace, a riconnettersi a Internet dopo ogni interruzione. Ciò rende inevitabilmente più affidabile il download.

-b pone il comando in background immediatamente dopo l’avvio. Se non viene specificato un output file per i log attraverso l’opzione -o, l’output viene rediretto su wget-log;

-q spegne l’output (permettendoci un’esecuzione più snella);

-c ripristina un download interrotto precedentemente. Utile se volete concludere un file già parzialmente scaricato con un’altra istanza di Wget o con un altro software.

https://speed.hetzner.de/10GB.bin è il nostro URL di esempio, da sostituire con il vostro.

Subito dopo aver invocato il comando, la nostra shell ci mostrerà il PID del processo Wget, ovvero un numero che identifica (univocamente) l’istanza di Wget che abbiamo azionato nel sistema. Se volessimo interrompere il download, potremo farlo semplicemente così:

kill PID

Riferimenti utili:

Lascia un commento