[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Aiuto su Script





Il giorno 13 dicembre 2010 14:59, dea <dea@corep.it> ha scritto:
Ciao pac !

Due osservazioni:

-) Hai mica una versione identata come si deve ? Così è difficile capire la
struttura, case/if/cicli... non salta all'occhio l'inizio e la fine... non
vorrei che *questa parte non viene mai eseguita* perchè ti è sfuggito qualcosa.

 
Intanto e comunque grazie, ecco spero che questa vada un po' meglio
 
#!/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/mattino/$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 -xp password -a $LOG
   sendEmail -f $SENDER -t $MAIL_02 -u $MANCA_DVD -m $MANCA_DVD -s mail.191.biz -xu utente@utentespa -xp password -a $LOG
   sendEmail -f $SENDER -t $MAIL_03 -u $MANCA_DVD -m $MANCA_DVD -s mail.191.biz -xu utente@utentespa -xp password -a $LOG
   sendEmail -f $SENDER -t $MAIL_04 -u $MANCA_DVD -m $MANCA_DVD -s mail.191.biz -xu utente@utentespa -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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


 
-) Ma sei *proprio* sicuro di voler usare un dvd-rw per fare i backup ????

No, non me l'ha ordinato il dottore di far usare i dvd-rw cosa mi suggeriresti ?
Con i dvd-rw copio solo i dati
Tieni presente che i dati sono file isam e quindi occupano relativamente poco 1.2 Gb se non ricordo male.
grazie ancora


 
Ciao

Luca


--
Per REVOCARE l'iscrizione alla lista, inviare un email a
debian-italian-REQUEST@lists.debian.org con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a listmaster@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20101213135623.M55949@corep.it" target="_blank">http://lists.debian.org/20101213135623.M55949@corep.it



Reply to: