L A P A R T E SOTTO NON VIENE MAI ESEGUITA !!!!!
#!/bin/sh
# Backup su DVD-RW - file /backup.sh
clear
X=`date +%Y%m%d-%H%M`.log
DATA_BACKUP=`date +%Y%m%d-%H%M`.bk
LOG="/w1/log/$X"
echo
echo "######## PROCEDURA BACKUP ARCHIVI SIGEST (SIM) DVD-RW ########" >> $LOG
echo
echo -n " ----> Assegnazione variabili.... " >> $LOG
SRC="">
SRC2="/etc"
LISTAESCLUSIONE="/w1/exclude_list"
TMP="/w1/tmp/"
TAR="/w1/tmp/sim.tar"
IMG="/w1/tmp/sigest.iso"
DVDRW="1000,2,0 100002"
DEVDVD="/dev/hdc"
MNTISO="/mnt/iso"
MEDIADVD="/media/cdrom0"
CONFIG_FILEISO="/lista-daiso"
CHECKSUM_FILEISO="/checksums-daiso.md5.txt"
CONFIG_FILEMEDIA="/lista-dadvd"
CHECKSUM_FILEMEDIA="/checksums-media.md5.txt"
MD5SUM_C_ISO="/md5sum-c_iso.md5.txt"
MD5SUM_C_DVD="/md5sum-c_dvd.md5.txt"
ERRORE_COPIA="ERRORE COPIA"
MANCA_DVD="DVD MANCANTE O ILLEGGIBILE O NON MONTATO"
HOME1="/home/roberta/"
HOME2="/home/simonetta/"
UTENTE1="roberta"
UTENTE2="simonetta"
ESTENSIONE="txt"
PATHLOG="/w1/log"
PATHSOURCE="/"
SENDER="sigest@pippo.com"
FAILED="FAILED"
WARNING="WARNING"
SI_DVD="/si_dvd"
NO_DVD="/no_dvd"
SE_DVD="/se_dvd"
MD5SUM_CONTROL="/md5_control.txt"
NOMECC="sigest.ecc"
GIORNO=`date +%a`
MATTINO="/w1/week/sera/$GIORNO/$NOMECC"
MAIL_01="pippo@pippo.it"
MAIL_02="topolino@gmail.com"
MAIL_03="amministrazione@azienda.com"
MAIL_04="serviziofornitori@azienda.com"
S="s"
echo > $LOG
echo -n "Inizio log **************************************************** " >> $LOG
date >> $LOG
echo >> $LOG
sleep 2
echo "OK Inizio Procedura di Backup."
echo "OK Inizio Procedura di Backup." >> $LOG
echo
logger -p daemon.info 1.Inizio backup
# Cancellazione directory di appoggio
logger -p daemon.info "2.Cancellazione file in $TMP"
cd $TMP
echo " ----> Situazione pre-copie " >> $LOG
echo " ----> Situazione pre-copie "
ls -al $TMP >> $LOG 2>&1
echo " ----> Cancellazione files precedenti..." >> $LOG
echo " ----> Cancellazione files precedenti..."
rm -vrf $TMP* >> $LOG 2>&1
sleep 2
echo "OK Effettuata cancellazione tmp"
echo "OK Effettuata cancellazione tmp" >> $LOG
echo
echo " " >> $LOG
echo " ----> Creazione del file iso ...." >> $LOG
echo " ----> Creazione del file iso ...."
logger -p daemon.info 3.Creazione del file iso
cd $PATHSOURCE
rm -vrf *.bk
date > $DATA_BACKUP
# mkisofs -R -J -l -o $IMG -exclude-list $LISTAESCLUSIONE / >> $LOG 2>&1
genisoimage -R -J -l -o $IMG -exclude-list $LISTAESCLUSIONE $PATHSOURCE >> $LOG 2>&1
du -s -m $TMP >> $LOG
#sync
date >> $LOG
echo "OK Creata Immagine ISO."
echo "OK Creata Immagine ISO." >> $LOG
echo
echo "Cambio permessi ISO"
echo "Cambio permessi ISO" >> $LOG
echo
chown sigest:sigest $IMG >> $LOG
chmod 777 $IMG >> $LOG >> $LOG
echo
echo "Copia su vshare sigest.iso"
echo "Copia su vshare sigest.iso" >> $LOG
mount -t vboxsf vshare /media/vbox_share -o uid=`id -u`,gid=`id -g` >> $LOG
cp -vf $IMG /media/vbox_share/ >> $LOG
umount /media/vbox_share >> $LOG
echo
rm -rfv $SI_DVD >> $LOG
rm -rfv $NO_DVD >> $LOG
rm -rfv $SE_DVD >> $LOG
echo "Chiudo il Cassettino" >> $LOG
echo "Chiudo il Cassettino"
eject -vt >> $LOG
sleep 60
echo "Monto cdrom" >> $LOG
echo "Monto cdrom"
mount -v /media/cdrom >> $LOG
sleep 180
if [[ $(df | grep hdc | wc -l) -eq 0 ]]; then
echo "MANCA DVD MONTATO ? ILLEGGIGILE ? VERGINE ?" >> $LOG
echo "MANCA DVD MONTATO ? ILLEGGIGILE ? VERGINE ?"
echo "TENTERO SCRITTURA PER VEDERE SE VERGINE" >> $LOG
echo "TENTERO SCRITTURA PER VEDERE SE VERGINE"
touch $SE_DVD >> $LOG
else
touch $SI_DVD >> $LOG
echo " ----> Formattazione DVD-RW......" >> $LOG
echo " ----> Formattazione DVD-RW......"
logger -p daemon.info 4.Formattazione del DVD-RW
dvd+rw-format -blank $DEVDVD >> $LOG 2>&1 || rm $SI_DVD >> $LOG ; touch $NO_DVD >> $LOG
sleep 60
ls -l /media/cdrom0 >> $LOG
sleep 60
echo "Tentativo di Formattazione Supporto Effettuata."
echo "Tentativo di Formattazione Supporto Effettuata." >> $LOG
echo " ----> Scrittura DVD-RW......"
echo " ----> Scrittura DVD-RW......" >> $LOG
# Scrittura dati sul dvd-rw con espulsione dvd-rw
echo " ----> Scrittura DVD-RW......" >> $LOG
echo " ----> Scrittura DVD-RW......"
logger -p daemon.info 5.Scrittura su DVD-RW
sync
sleep 300
growisofs -dvd-compat -Z $DEVDVD=$IMG >> $LOG 2>&1 || rm $SI_DVD >> $LOG; touch $NO_DVD >> $LOG
echo "Tentativo di Scrittura su supporto Terminata." >> $LOG
echo "Tentativo di Scrittura su supporto Terminata."
fi
if [ -f $SE_DVD ]; then
echo "TENTO SCRITTURA PER VEDERE SE VERGINE" >> $LOG
echo "TENTO SCRITTURA PER VEDERE SE VERGINE"
echo " ----> Scrittura DVD-RW......" >> $LOG
echo " ----> Scrittura DVD-RW......"
sync
date >> $LOG
sleep 300
growisofs -dvd-compat -Z $DEVDVD=$IMG >> $LOG && touch $SI_DVD >> $LOG
else
touch $NO_DVD >> $LOG
fi
# Controllo Scrittura Dati
date >> $LOG
echo "Controllo Scrittura."
echo "Controllo Scrittura." >> $LOG
echo " " >> $LOG
rm -vf $CHECKSUM_FILEISO >> $LOG 2>&1
rm -vf $CHECKSUM_FILEMEDIA >> $LOG 2>&1
umount $MNTISO >> $LOG 2>&1
mount -t iso9660 $IMG $MNTISO -o loop >> $LOG 2>&1
cd $MNTISO >> $LOG 2>&1
#find -exec md5sum >> $CHECKSUM_FILEISO {} \;
#find /mnt/iso -type f -exec cat {} \; |md5sum >> $CHECKSUM_FILEISO
find $MNTISO -type f -print0 | xargs -0 md5sum >> $CHECKSUM_FILEISO
if [ -f $SI_DVD ]
then
echo " ----> Controllo Scrittura DVD-RW......" >> $LOG
echo " ----> Controllo Scrittura DVD-RW......"
umount $DEVDVD >> $LOG 2>&1
mount $DEVDVD $MEDIADVD >> $LOG 2>&1
cd $MEDIADVD >> $LOG 2>&1
echo " Contenuto DVD " >> $LOG
ls -la >> $LOG
#find -exec md5sum >> $CHECKSUM_FILEMEDIA {} \;
#find /media/cdrom -type f -exec cat {} \; |md5sum >> $CHECKSUM_FILEMEDIA
find $MEDIADVD -type f -print0 | xargs -0 md5sum >> $CHECKSUM_FILEMEDIA
fi
cd /
#--------------------------------------------------------------------
# La parte seguente e' stata eliminata e sostituita dal controllo
# sul file con md5sum -c che confronta hash con il file
# controllando cosi anziche copia.iso vs copiadvd
# copia.iso vs file su disco - copiadvd vs file su disco
#--------------------------------------------------------------------
#echo -n " ----> Controllo Differenze fra iso e DVD " >> $LOG
#echo -n ": " >> $LOG
#diff -s $CHECKSUM_FILEISO $CHECKSUM_FILEMEDIA >> $LOG
#echo -n "___________________________________________________ " >> $LOG
echo " ----> Controllo hash dei file " >> $LOG
echo " ----> Controllo hash dei file "
echo " " >> $LOG
echo " ----> Controllo hash dei file sigest.iso " >> $LOG
echo " ----> Controllo hash dei file sigest.iso "
if [ -f $MD5SUM_C_ISO ]
then rm -vf $MD5SUM_C_ISO >> $LOG 2>&1
echo "Cancellato" " " $MD5SUM_C_ISO
echo "Cancellato" " " $MD5SUM_C_ISO >> $LOG
fi
if [ -f $MD5SUM_C_DVD ]
then rm -vf $MD5SUM_C_DVD >> $LOG 2>&1
echo "Cancellato" " " $MD5SUM_C_DVD
echo "Cancellato" " " $MD5SUM_C_DVD >> $LOG
fi
if [ -f $MD5SUM_CONTROL ]
then rm -vf $MD5SUM_CONTROL >> $LOG 2>&1
echo "Cancellato" " " $MD5SUM_CONTROL
echo "Cancellato" " " $MD5SUM_CONTROL >> $LOG
fi
if [ -f $CHECKSUM_FILEISO ]
then md5sum -c $CHECKSUM_FILEISO >> $MD5SUM_C_ISO
fi
echo " ----> Controllo presenza dvd e eventualmente hash file su DVD" >> $LOG
echo " ----> Controllo presenza dvd e eventualmente hash file su DVD"
if [[ $(df | grep hdc | wc -l) -eq 0 ]]; then
echo "MANCA DVD MONTATO O ILLEGGIGILE" >> $LOG
echo "MANCA DVD MONTATO O ILLEGGIGILE"
sendEmail -f $SENDER -t $MAIL_01 -u $MANCA_DVD -m $MANCA_DVD -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
sendEmail -f $SENDER -t $MAIL_02 -u $MANCA_DVD -m $MANCA_DVD -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
sendEmail -f $SENDER -t $MAIL_03 -u $MANCA_DVD -m $MANCA_DVD -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
sendEmail -f $SENDER -t $MAIL_04 -u $MANCA_DVD -m $MANCA_DVD -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
else
echo " ----> Controllo hash dei file su DVD " >> $LOG
echo " ----> Controllo hash dei file su DVD "
md5sum -c $CHECKSUM_FILEMEDIA >> $MD5SUM_C_DVD
echo " ----> Creato file si_dvd " >> $LOG
echo " ----> Creato file si_dvd "
fi
echo " ----> Ricerca grep per hash errati sigest.iso " >> $LOG
echo " ----> Ricerca grep per hash errati sigest.iso "
for file in $MD5SUM_C_ISO
do
if [ -f $file ];
then grep -n $FAILED $MD5SUM_C_ISO >> $MD5SUM_CONTROL;
grep -n $WARNING $MD5SUM_C_ISO >> $MD5SUM_CONTROL;
echo "Effettuata ricerca file corrotti su md5sum della iso" >> $LOG
echo "Effettuata ricerca file corrotti su md5sum della iso"
else
echo "ATTENZIONE IL FILE " $MD5SUM_C_ISO "NON ESISTE !!!" >> $LOG
echo "ATTENZIONE IL FILE " $MD5SUM_C_ISO "NON ESISTE !!!"
echo "ATTENZIONE IL FILE " $MD5SUM_C_ISO "NON ESISTE !!!"
sendEmail -f $SENDER -t $MAIL_01 -u $ERRORE_COPIA -m $MD5SUM_C_ISO " NON ESISTE " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
sendEmail -f $SENDER -t $MAIL_02 -u $ERRORE_COPIA -m $MD5SUM_C_ISO " NON ESISTE " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
sendEmail -f $SENDER -t $MAIL_03 -u $ERRORE_COPIA -m $MD5SUM_C_ISO " NON ESISTE " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
sendEmail -f $SENDER -t $MAIL_04 -u $ERRORE_COPIA -m $MD5SUM_C_ISO " NON ESISTE " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
fi
done
if [ -f $SI_DVD ]
then echo " ----> Ricerca (grep) per hash errati su DVD " >> $LOG
echo " ----> Ricerca (grep) per hash errati su DVD "
if [ -f $MD5SUM_C_DVD ]
then grep -n $FAILED $MD5SUM_C_DVD >> $MD5SUM_CONTROL;
grep -n $WARNING $MD5SUM_C_DVD >> $MD5SUM_CONTROL;
echo "Effettuata ricerca file corrotti su md5sum del dvd" >> $LOG
echo "Effettuata ricerca file corrotti su md5sum del dvd"
else
echo "ATTENZIONE IL FILE " $MD5SUM_C_DVD "NON ESISTE !!!" >> $LOG
echo "ATTENZIONE IL FILE " $MD5SUM_C_DVD "NON ESISTE !!!"
sendEmail -f $SENDER -t $MAIL_01 -u $ERRORE_COPIA -m $MD5SUM_C_DVD " NON ESISTE " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
sendEmail -f $SENDER -t $MAIL_02 -u $ERRORE_COPIA -m $MD5SUM_C_DVD " NON ESISTE " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
sendEmail -f $SENDER -t $MAIL_03 -u $ERRORE_COPIA -m $MD5SUM_C_DVD " NON ESISTE " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
sendEmail -f $SENDER -t $MAIL_04 -u $ERRORE_COPIA -m $MD5SUM_C_DVD " NON ESISTE " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $LOG
fi
fi
if [ -f $SI_DVD ]
then echo "Controllo se md5sum -c su dvd andato a buon fine o esistono file corrotti" >> $LOG
echo "Controllo se md5sum -c su dvd andato a buon fine o esistono file corrotti"
if [ -s $MD5SUM_CONTROL ];
then echo "ATTENZIONE ERRORE md5" >> $LOG
echo "ATTENZIONE ERRORE md5"
sendEmail -f $SENDER -t $MAIL_01 -u "ERRORE md5 in Backup" -m " md5sum CON ERRORE check allegato " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $MD5SUM_CONTROL $LOG
sendEmail -f $SENDER -t $MAIL_02 -u "ERRORE md5 in Backup" -m " md5sum CON ERRORE check allegato " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $MD5SUM_CONTROL $LOG
sendEmail -f $SENDER -t $MAIL_03 -u "ERRORE md5 in Backup" -m " md5sum CON ERRORE check allegato " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $MD5SUM_CONTROL $LOG
sendEmail -f $SENDER -t $MAIL_04 -u "ERRORE md5 in Backup" -m " md5sum CON ERRORE check allegato " -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $MD5SUM_CONTROL $LOG
cat $MD5SUM_CONTROL >> $LOG
fi
fi
if [ -f $SI_DVD ]
then
if [ ! -s $MD5SUM_CONTROL ]
then echo "NON CI SONO ERRORI md5" >> $LOG
sendEmail -f $SENDER -t $MAIL_01 -u "Backup OK" -m "Controllo Backup andato a buon fine 2" -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $MD5SUM_CONTROL $LOG
sendEmail -f $SENDER -t $MAIL_02 -u "Backup OK" -m "Controllo Backup andato a buon fine 2" -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $MD5SUM_CONTROL $LOG
sendEmail -f $SENDER -t $MAIL_03 -u "Backup OK" -m "Controllo Backup andato a buon fine 2" -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $MD5SUM_CONTROL $LOG
sendEmail -f $SENDER -t $MAIL_04 -u "Backup OK" -m "Controllo Backup andato a buon fine 2" -s mail.191.biz -xu utente@utentespa.191.it -xp password -a $MD5SUM_CONTROL $LOG
fi
fi
L A P A R T E SOTTO NON VIENE MAI ESEGUITA !!!!!
______________________________________________
echo >> $LOG
date >> $LOG
ls -l /checks* >> $LOG
cp -vf $LOG $HOME1 >> $LOG
cp -vf $LOG $HOME2 >> $LOG
if [ -f $MD5SUM_C_ISO ]
then cp -vf $MD5SUM_C_ISO $HOME1 >> $LOG
cp -vf $MD5SUM_C_ISO $HOME2 >> $LOG
fi
if [ -f $MD5SUM_C_DVD ]
then cp -vf $MD5SUM_C_DVD $HOME1 >> $LOG
cp -vf $MD5SUM_C_DVD $HOME2 >> $LOG
fi
if [ -f $MD5SUM_CONTROL ]
then cp -vf $MD5SUM_CONTROL $HOME1 >> $LOG
cp -vf $MD5SUM_CONTROL $HOME2 >> $LOG
fi
cd $HOME1 >> $LOG
chown $UTENTE1:$UTENTE1 $X >> $LOG
NOMETXT1=`echo $X|cut -d"." -f1`
mv $X `echo $NOMETXT1.$ESTENSIONE`;
for file in md5*
do
chown $UTENTE1:$UTENTE1 $file >> $LOG
done
cd $HOME2 >> $LOG
chown $UTENTE2:$UTENTE2 $X >> $LOG
NOMETXT2=`echo $X|cut -d"." -f1`
mv $X `echo $NOMETXT2.$ESTENSIONE`;
for file in md5*
do
chown $UTENTE2:$UTENTE2 $file >> $LOG
done
echo " " >> $LOG
if [ -f $SI_DVD ]
#lpr -Plp2 $LOG
then echo "Creo file ecc per dvdisaster" >> $LOG
echo "Creo file ecc per dvdisaster"
dvdisaster -c -i $IMG -e $MATTINO >> $LOG 2>&1
fi
echo >> $LOG
cd $MEDIADVD >> $LOG 2>&1
ls -la >> $LOG
cd
umount $DEVDVD >> $LOG 2>&1
umount $MNTISO >> $LOG 2>&1
echo "..." >> $LOG
ls -l $IMG >> $LOG
date >> $LOG
echo "Fine LOG ********************************" >> $LOG
echo "Fine LOG ********************************"
date >> $LOG
eject $DEVDVD