In questo articolo analizzeremo piuttosto a fondo il noto tool wget.

<piccolo OT>

E’ molto utile sapere come funziona per evitare mezze figure di me**a come è successo a me:

Volevo scaricare le canzoni di http://miscstuff.altervista.org/l33t/songs.php e non conoscendo bene wget creo uno script perl che a sua volta legge la pagina in questione, parsa i link e crea una lista da passare a wget. Dopo su un forum ho scoperto che si poteva fare tutto con un parametro del suddetto tool…

</piccolo OT>

Bene…detto questo partiamo dall’help di wget:
Fate un wget --help e ammirate! xD

…Decisamente lungo direi… Possiamo quindi presupporre che wget non si limita al classico comando wget http://sito.it/pippo.html ma va ben oltre

Dopo aver letto l’help possiamo tranquillamente capire perchè quelli del forum mi hanno “tirato le orecchie”. Infatti per scaricare tutte quelle canzoni bastava un semplice
wget -r -k http://miscstuff.altervista.org/l33t/songs.php e non serviva il mio script perl inutilissimo.

Credo che i parametri che ci interessano di più per un uso pratico sono:

  • -r: scaricamento ricorsivo (scarica tutto il contenuto del server web)
  • -m: crea un mirror locale del sito (simile a -r ma converte i link assoluti in link relativi perchè funzionino in locale)
  • -o log: salva un log del download nel file log
  • -r: scaricamento ricorsivo (scarica tutto il contenuto del server web)
  • -c: riprende a scaricare un file parzialmmente scaricato (utile se cade spesso la linea😉 )
  • -i lista: passiamo a wget un file lista contenete gli url da scaricare
  • -k: converte i link assoluti in relativi
  • -b: esegue wget in background (simile a wget http://sito.com &)
  • -nd: non ricrea la struttura delle cartelle del sito
  • -nH: non scarica i file nella cartella sito.com se eseguiamo per esempio wget -r http://sito.com ma nella directory corrente

Ce ne sono un infinità ma credo siano meno utilizzati. Agli user curiosi consiglio di leggere attentamente il man

N.B.:
1) Possiamo “concatenare” i vari parametri:
Esempio: wget -rkb http://sito.com
2)-r e -m non scaricano tutti i file presenti sul server ma “solo” quelli linkati nelle pagine html

Con queste nozioni si possono realizzare comandi davvero utili e per tutti i gusti!!
Non credo siano necessari esempi dato che la lista di parametri è autoesplicativa.

e…Come può mancare un mini how-to sul file di configurazione?

wgetrc con una marcia in più!

Esistono due file di configurazione di Wget (come molti altri tool linux). Uno nella home chiamato .wgetrc e l’altro /etc/wgetrc. Il primo applica le modifiche a livello utente, il secondo al sistema in generale.
La struttura è la stessa e in ognuno possiamo specificare le impostazioni che preferiamo😀
Vediamo un esempio commentato:

wgetrc

#esempio di wgetrc by fox91


#scarica i file fino a 5MB
quota = 5M


#prova 10 volte a scaricare il file
#se il down fallisce
tries = 20

#livello di profondità della recursione
reclevel = 5

#abilitiamo l'ftp passivo
passive_ftp = on


#tempo di attesa tra una
#connessione e l'altra
waitretry = 10

#attiviamo il time-stamping
timestamping = on


#inseriamo un header HTTP di default
header = 'Accept-Charset: iso-8859-1'

#user agent di default
user-agent = ''

Per maggiori informazioni Wget consultare la documentazione GNU😉

That’s all folks!