Nuovo script:
#!/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 al nome file salvato. # Se il file scaricato e` uguale al primo precedente lo scarta. # # Il file di input deve quindi essere strutturato in questo # modo: # URL NAME EXT # # Il comando dev'essere utilizzato cosi`: $0 < inputfile # # NOTE: # Al primo utilizzo viene generato un file di confronto, e` un file # vuoto che puo`/deve essere eliminato quando almeno un'altro e` # stato scaricato e salvato. # Funzione Contolla Scarica E Salva funcses () { ls $2* if [ $? != 0 ] then touch $2$(date +%Y%m%d -d "-1 day").$3 fi wget -U mozilla $1 --output-document=$2$(date +%Y%m%d)-new.$3 i=0 while [ -e $2$(date +%Y%m%d)-new.$3 ] do if [ -e $2$(date +%Y%m%d -d "-$i day").$3 ] then diff $2$(date +%Y%m%d -d "-$i day").$3 $2$(date +%Y%m%d)-new.$3 > /dev/null if [ $? != 0 ] then mv $2$(date +%Y%m%d)-new.$3 $2$(date +%Y%m%d).$3 else rm $2$(date +%Y%m%d)-new.$3 fi else $(( i++ )) 2> /dev/null fi done } # 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 funcses $line fi doneUn paio di note:
- L'aggiornamento/download e` giornaliero
- Il download viene confontato col precedente e memorizzato solo se diverso
- E` consigliabile farlo "girare" col demone "cron"
Nessun commento:
Posta un commento