Guida wget
La seguente guida è stata realizzare per imparare a scaricare file, immagini, interi siti web tramite il tool wget. Il sistema su cui è stata implementata è Ubuntu 10.04 LTS x86_64.
WgOHhs BION I'm impressed! Cool post!
Ottenere Wget
E' possibile trovarlo sulla pagina ufficiale: wget Inoltre è possibile scaricarlo direttamente via http o ftp.
Se si dispone di un sistema operativo GNU/Linux, solitamente viene installato con l'installazione base del sistema operativo stesso ma nel caso pessimo è possibile trovarlo nei propri repository (Synaptic, Adept, ecc.).
Per capire se è presente, digitare da terminale:
aptitude search wget
Se a fianco di wget compare una i (installed) allora significa che è già installato nel sistema.
Scaricare un file
Il metodo più semplice per imparare ad utilizzare un programma è proprio quello di provarlo.
Consiglio : utilizzate la cartella /tmp/ per fare le prove con wget, in questo modo tutto ciò che farete in quest'area verrà rimosso al prossimo riavvio.
Apriamo un terminale e digitiamo:
wget it.wikipedia.org
Ciò che abbiamo fatto è stato scaricare nella cartella corrente la pagina principale di Wikipedia. E' possibile notare la facilità con cui viene scaricata una pagina web: lo stesso ragionamento lo si può fare con un file di qualsiasi tipo.
wget http://ftp.gnu.org/gnu/wget/wget-latest.tar.bz2
Sia la pagina web che l'ultima versione di wget vengono scaricati allo stesso modo: <comando> <argomento>.
Note 1. Nel primo esempio è stato omesso http://: la risposta è sì, si può omettere tale parte.
Usare un file di URL
Passare tanti argomenti quanti sono i file da scaricare può diventare un'operazione onerosa e piuttosto stancante. Pensate ad esempio di dover scaricare le immagini ISO di diverse distribuzioni (Debian, Ubuntu, gNewSense, ecc.): non sarebbe più facile prendere un file e inserirci dentro tutti i vari URL e poi darlo in pasto a wget? Yeah! Possiamo fare anche questo!
La via più semplice è quella di creare un file testuale contenente gli URL dei file da scaricare, ogni indirizzo situato riga per riga. Come esempio, ecco il contenuto del file linkIso:
http://it.releases.ubuntu.com/10.04.1/ubuntu-10.04.1-desktop-i386.iso http://it.releases.ubuntu.com/10.04.1/ubuntu-10.04.1-server-i386.iso http://it.releases.ubuntu.com/10.04.1/ubuntu-10.04.1-alternate-i386.iso http://it.releases.ubuntu.com/10.04.1/ubuntu-10.04.1-netbook-i386.iso
In linkIso sono presenti i link alle immagini ISO della distro Ubuntu, in particolare alla versione 10.04.1 del desktop, server, alternate e netbook. Per scaricarle in sequenza con wget dovremo soltanto digitare il seguente comando da shell:
wget -i linkIso
Di conseguenza, verranno scaricate man mano tutte le immagino, proprio come volevamo. L'opzione -i permette di lavorare su un file semplice di testo in input.
E se volessimo inserire qualche commento? Oppure gestire file HTML? In nostro soccorso arriva l'opzione --force-html: in questo modo possiamo dare in pasto a wget anche dei file il cui contenuto è sintassi HTML. A questo punto prendiamo il file linkIso e trasformiamolo in un file HTML, inserendo dei commenti qua e là, e aggiungendo nuove distribuzioni da scaricare. Il contenuto del neonato linkIso.html sarà il seguente:
< !-- Lista delle immagini ISO delle seguenti distribuzioni GNU/Linux : - Debian - Ubuntu - Sabayon - gNewSense - Gentoo - Fedora Le architetture supportate sono: - x86 - amd64 - ia64 - x86_64 - i686 --> < !-- x86 --> < !-- DEBIAN 5.05 Lenny --> <base href="http://cdimage.debian.org/debian-cd/5.0.5/i386/iso-cd/"> < !-- Net Install --> <a href="debian-505-i386-netinst.iso"> < !-- UBUNTU 10.04.1 LTS --> <base href="http://it.releases.ubuntu.com/10.04.1/"> < !-- Desktop --> <a href="ubuntu-10.04.1-desktop-i386.iso"> < !-- Server --> <a href="ubuntu-10.04.1-server-i386.iso"> < !-- Alternate --> <a href="ubuntu-10.04.1-alternate-i386.iso"> < !-- Netbook --> <a href="ubuntu-10.04-netbook-i386.iso"> < !-- SABAYON 5.3 --> <base href="ftp://na.mirror.garr.it/mirrors/sabayonlinux/iso/"> < !-- Gnome --> <a href="Sabayon_Linux_5.3_x86_G.iso"> < !-- KDE --> <a href="Sabayon_Linux_5.3_x86_K.iso"> < !-- LXDE --> <a href="Sabayon_Linux_5.3_x86_LXDE.iso"> < !-- XFCE --> <a href="Sabayon_Linux_5.3_x86_XFCE.iso"> < !-- GNEWSENSE 2.3 --> <base href="http://cdimage.gnewsense.org/"> <a href="gnewsense-livecd-deltah-i386-2.3.iso"> < !-- GENTOO 10.1 --> <base href="http://mirrors.kernel.org/gentoo/releases/x86/autobuilds/current-iso/"> < !-- Minimal --> <a href="install-x86-minimal-20100817.iso"> < !-- FEDORA 13 --> <base href="http://fedora.mirror.garr.it/mirrors/fedora/linux/releases/13/Fedora/i386/iso/"> < !-- Net Install --> <a href="Fedora-13-i386-netinst.iso"> < !-- amd64 --> < !-- DEBIAN 5.05 Lenny --> <base href="http://cdimage.debian.org/debian-cd/5.0.5/amd64/iso-cd/"> < !-- Net Install --> <a href="debian-505-amd64-netinst.iso"> < !-- UBUNTU 10.04.1 LTS --> <base href="http://it.releases.ubuntu.com/10.04.1/"> < !-- Desktop --> <a href="ubuntu-10.04.1-desktop-amd64.iso"> < !-- Server --> <a href="ubuntu-10.04.1-server-amd64.iso"> < !-- Alternate --> <a href="ubuntu-10.04.1-alternate-amd64.iso"> < !-- SABAYON 5.3 --> <base href="ftp://na.mirror.garr.it/mirrors/sabayonlinux/iso/"> < !-- Gnome --> <a href="Sabayon_Linux_5.3_amd64_G.iso"> < !-- KDE --> <a href="Sabayon_Linux_5.3_amd64_K.iso"> < !-- LXDE --> <a href="Sabayon_Linux_5.3_amd64_LXDE.iso"> < !-- XFCE --> <a href="Sabayon_Linux_5.3_amd64_XFCE.iso"> < !-- GENTOO 10.1 --> <base href="http://mirrors.kernel.org/gentoo/releases/amd64/autobuilds/current-iso/"> < !-- Minimal --> <a href="install-amd64-minimal-20100819.iso"> < !-- ia64 --> < !-- DEBIAN 5.05 Lenny --> <base href="http://cdimage.debian.org/debian-cd/5.0.5/ia64/"> < !-- Net Install --> <a href="iso-cd/debian-505-ia64-netinst.iso"> < !-- GENTOO 10.1 --> <base href="http://distfiles.gentoo.org/releases/ia64/autobuilds/current-iso/"> < !-- Minimal --> <a href="install-ia64-minimal-20100826.iso"> < !-- x86_64 --> < !-- FEDORA 13 --> <base href="http://fedora.mirror.garr.it/mirrors/fedora/linux/releases/13/Fedora/x86_64/iso/"> < !-- Net Install --> <a href="Fedora-13-x86_64-netinst.iso"> < !-- Live --> <base href="http://fedora.mirror.garr.it/mirrors/fedora/linux/releases/13/Live/x86_64/"> <a href="Fedora-13-x86_64-Live.iso"> < !-- i686 --> < !-- FEDORA 13 --> <base href="http://fedora.mirror.garr.it/mirrors/fedora/linux/releases/13/Live/i686/"> < !-- Live --> <a href="Fedora-13-i686-Live.iso">
Il suddetto file è un ottimo esempio per scaricare tantissimi file, lasciando wget a lavorare mentre nel frattempo si compiono altre operazioni sulla stessa macchina.
Consiglio : si può utilizzare l'opzione -b per mandare l'esecuzione di wget in background. Al termine dell'esecuzione, verrà scritto il resoconto in un file nominato wget-log nella cartella presente.
Note 1. In HTML il commento è delimitato dal costrutto ': per poter visionare il contenuto corretto del file linkIso.html è stato necessario modificare il costrutto in < !-- -->. 2. Il costrutto <base href="URL"> permette di impostare un link base di riferimento per i link successivi. Da notare le immagini di Ubuntu non hanno l'intero URL specificato ma soltanto una parte: la radice è specificata appunto in <base href="http://it.releases.ubuntu.com/10.04.1/">