Ho ripensato a come scaricare i contenuti da internet (pagine, immagini, documenti), praticamente ho rivisto e corretto lo script per la storicizzazione dei contenuti.
Anzitutto, non so che cosa e quanti contenuti voglio scaricare, per questo motivo ho pensato ad un elenco che contenesse
- URL da scaricare
- NOME del file scaricato, che nome deve avere una volta scaricato, uguale alla "url" in certi casi e` improponibile, specialmente se contiene caratteri interrogativi o altro
- TIPO del file che sto` scaricando, per esempio: jpg, pdf, html
http://srv2.realcam.it/live/pub/12-4.jpg Canazei-Forcella_Pordoi- jpg http://srv2.realcam.it/live/pub/12-6.jpg Canazei-Marmolada- jpg http://srv2.realcam.it/live/pub/12-10.jpg Canazei-Lago_e_Passo_Fedaia- jpg http://webcam.altabadia.org/cam/meteoeye3.jpg Colfosco-Gruppo_Sella_e_Passo_Gardena- jpg http://www.belledolomiti.it/res/webcam/original/marmolada.jpg Marmolada-Marmolada- jpgoppure questo:
http://www.dolomitisuperski.com/valfassa/it-IT/previsioni-meteo-val-di-fassa-905IT.html Val_di_Fassa_Meteo- html http://www.dolomitisuperski.com/valfassa/it-IT/906IT.html Val_di_Fassa_Piste_e_Impianti- html http://www.dolomitisuperski.com/altabadia/it-IT/previsioni-meteo-alta-badia-644IT.html Alta_Badia_Meteo- html http://www.dolomitisuperski.com/gardena/it-IT/previsioni-meteo-val-gardena-731IT.html Val_Gardena_Meteo- html http://www.dolomitisuperski.com/arabba/it-IT/previsioni-meteo-arabba-1080IT.html Arabba_Meteo- html http://www.dolomitisuperski.com/marmolada/it-IT/previsioni-meteo-marmolada-1171IT.html Marmolada_Meteo- html http://www.dolomitisuperski.com/it-IT/previsioni-meteo-1939IT.html Dolomiti_Superski_Meteo- html http://www.dolomitisuperski.com/it-IT/104IT.html Dolomiti_Superski_Piste_e_Impianti- html http://www.dolomitisuperski.com/it-IT/1971IT.html Dolomiti_Superski_Neve- htmlChiamiamoli "hourlist.txt" il primo e "daylist.txt" il secondo, vedremo poi perche`.
Lo script che ho creato, legge un file di input e lo passa ad una funzione che interpreta la riga ricevuta come parametri per i comandi che contiene, ho aggiunto anche una verifica che la riga letta contenga tutti e tre i parametri.
Visto che il suo utilizzo deve prestarsi al download di contenuti nel tempo, cioe`, scaricare lo stesso gruppo di file (il file elenco) anche piu` volte nell'arco della giornata, per non sovrascrivere i precedenti ho fatto in modo che aggiungesse al "nomefile" da memorizzare richiesto dal file di input, la data completa di ore e minuti.
downloadfromlist.sh:
#!/bin/bash # Questo batch legge dallo standard input una linea alla volta, # scaricando la url specificata come primo parametro, assegnandogli # il nome specificato come secondo, e l'estensione come terzo. # Aggiunge inoltre ANNO MESE GIORNO ORA MINUTI al nome file salvato. # # Il file di input deve quindi essere strutturato in questo # modo: # URL NAME EXT # # Il comando dev'essere utilizzato cosi`: $0 < inputfile # Funzione download e rinomina file fundwload () { # Help if [[ $# -ne 3 ]] then echo "Attenzione, il file di input specificato non contiene tutti i parametri necessari" exit 2 fi wget -U mozilla $1 --output-document=$2$(date +%Y%m%d%H%M).$3 } # Help if [[ $# -ne 0 || $1 = "-h" ]] then echo "uso: $0 < inputfile" echo "oppure" echo "uso: cat inputfile | $0" echo "" echo "Se non specificata redirezione accetta input manuale" exit 1 fi # Lettura standard input e chiamata alla funzione while read line do if [ "$line" != "" ] then fundwload $line fi doneIo lo utilizzo, col demone "cron", scaricando giornalmente alle ore 12 circa i bollettini meteo, mentre le immagini delle webcam ogni mezz'ora dalle 8 alle 18e30 (ci si potrebbe anche fare un filmato :) ).
Rimane il problema degli scaricamenti "doppi", specialmente nel caso delle immagini webcam, potrebbero non essere state aggiornate nell'ultima mezz'ora (o anche piu`), per eliminare i files superflui a fine giornata ripulisco col programma "fdupes".
Il mio "crontab file" probabilmente chiarisce meglio:
*/30 8-18 * * * cd /home/davide/Documents/Dropbox/Snowboard-Bollettini && /home/davide/Documents/Dropbox/Snowboard-Bollettini/downloadfromlist.sh < /home/davide/Documents/Dropbox/Snowboard-Bollettini/hourlist.txt 2 12 * * * cd /home/davide/Documents/Dropbox/Snowboard-Bollettini && /home/davide/Documents/Dropbox/Snowboard-Bollettini/downloadfromlist.sh < /home/davide/Documents/Dropbox/Snowboard-Bollettini/daylist.txt 2 19 * * * fdupes -dN /home/davide/Documents/Dropbox/Snowboard-Bollettini
Direi una procedura/script decisamente piu` snella e pulita delle precedenti.
Nessun commento:
Posta un commento