Guida wget

Da RELug :: Reggio Emilia Linux User Group.
(Differenze fra le revisioni)
(Annullata la modifica 615 di 98.142.220.11 (discussione))
(pagina ripristinata)
 
Riga 2: Riga 2:
 
Il sistema su cui è stata implementata è '''Ubuntu 10.04 LTS x86_64'''.
 
Il sistema su cui è stata implementata è '''Ubuntu 10.04 LTS x86_64'''.
  
WgOHhs BION I'm impressed! Cool post!
+
== Introduzione ==
 +
Innanzitutto, che cos'è e a che cosa serve wget?
 +
E' un programma sotto licenza GNU GPL che permette di scaricare materiale dalla rete globale internet o da un rete locale.
 +
Supporta i seguenti protocolli: '''HTTP - HTTPS - FTP'''.
 +
Questo tool viene utilizzato tramite la linea di comando (ma esiste anche un'interfaccia grafica per '''[http://it.wikipedia.org/wiki/GNOME Gnome]''' chiamata '''[http://projects.gnome.org/gwget/ gwget]''') e può tornare utile per svariati compiti, in particolar modo quando si ha a disposizione solamente una shell come nel caso della gestione di un server o di un accesso in remoto ad un computer.
  
 
== Ottenere Wget ==
 
== Ottenere Wget ==
Riga 35: Riga 39:
 
   '''1.''' Nel primo esempio è stato omesso ''http://'': la risposta è sì, si può omettere tale parte.
 
   '''1.''' Nel primo esempio è stato omesso ''http://'': la risposta è sì, si può omettere tale parte.
  
NjRrlw That's 2 clever by half and 2x2 clever 4 me. Thanks!
+
== 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/">''
 +
 
 +
[[category:Guide]]

Versione attuale delle 10:14, 26 apr 2011

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.

Indice

[modifica] Introduzione

Innanzitutto, che cos'è e a che cosa serve wget? E' un programma sotto licenza GNU GPL che permette di scaricare materiale dalla rete globale internet o da un rete locale. Supporta i seguenti protocolli: HTTP - HTTPS - FTP. Questo tool viene utilizzato tramite la linea di comando (ma esiste anche un'interfaccia grafica per Gnome chiamata gwget) e può tornare utile per svariati compiti, in particolar modo quando si ha a disposizione solamente una shell come nel caso della gestione di un server o di un accesso in remoto ad un computer.

[modifica] 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.

[modifica] 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.

[modifica] 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/">
Strumenti personali