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
done
Un 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