Lo script di backup parte ogni giorno alle 13:00 ed alle 20:00 Ogni volta vengono utilizzati DVD differenti, quindi dal lunedì al venerd' compreso sono 10 DVD differenti, ed ogni DVD è assegnato ad un determinato giorno e ora. Il tutto si trova guest Linux Debian Lenny in Virtual Box su un pc host con Windows 7 Pro. E' stato importato pari pari da un pc Windows XP che aveva appunto come guest la stessa VBox. Sul vecchio PC non sbagliava mai un backup. Ora in due settimane abbiamo avuto i seguenti risultati. Lunedì 13.00 Failed 20.00 Failed Martedi 13.00 Failed 20.00 OK Mercoledi 13.00.OK 20.00 OK Giovedì 13.00 Failed 20.00 Failed Venedrì 13.00 Failed 20.00 OK Settimana in corso Lunedì 13.00 OK 20.00 OK Martedì 13.00 OK 20.00 Failed Quindi i DVD non paiono avere colpe. Non riesco a trovarne una logica se non pensare a un bug (ma perchè prima non lo faceva sull'altro pc) oppure a problemi del masterizzatore. L'errore che viene riportato è il seguente dal LOG
Executing 'builtin_dd if=/w1/tmp/sigest.iso of=/dev/hdc obs=32k seek=0' :-( unable to O_EXCL /dev/hdc: someone was in time to remount? La procedura che ho scritto nei vari anni, prima prendendo una procedura piccola su un giornale poi ampliandola personalmente di anno in anno è la seguente : Scusate per la lunghezza e spero di non aver lasciato dati sulla procedura ma mi serve urgentemente un AIUTO. #!/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= elenco directory di cui eseguire il backup # TMP= directory di appoggio (con / finale!) # TAR= nome del file compresso di appoggio # IMG= nome del file immagine iso # CDEW= dispositivo indicato da cdrecord --scanbus come DVD-RW # LOG= file di log delle operazioni # S=s variabile fissa per ora non utilizzata #SRC="/home/sigest/fabbri" SRC="/home" 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/rxxxxxx/" HOME2="/home/sxxxxx/" UTENTE1="rxxxxxx" UTENTE2="sxxxxxxx" ESTENSIONE="txt" PATHLOG="/w1/log" PATHSOURCE="/" SENDER="sx...@mittente.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="p...@p1.it" MAIL_02="p...@p2.com" MAIL_03="p...@p3.com" MAIL_04="p...@p4.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 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 echo "Monto cdrom" >> $LOG echo "Monto cdrom" mount -v /dev/hdc /media/cdrom 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 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 ; touch $NO_DVD ls -l /media/cdrom0 >> $LOG 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 growisofs -dvd-compat -Z $DEVDVD=$IMG >> $LOG 2>&1 || rm $SI_DVD ; touch $NO_DVD RIGA IN CUI RESTITUISCE L'ERRORE 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......" growisofs -dvd-compat -Z $DEVDVD=$IMG >> $LOG && touch $SI_DVD else touch $NO_DVD fi # Controllo Scrittura Dati 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 .................................-a $LOG sendEmail -f $SENDER -t $MAIL_02 -u $MANCA_DVD -m $MANCA_DVD -s .................................-a $LOG sendEmail -f $SENDER -t $MAIL_03 -u $MANCA_DVD -m $MANCA_DVD -s .................................-a $LOG sendEmail -f $SENDER -t $MAIL_04 -u $MANCA_DVD -m $MANCA_DVD -s ................................ -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 ..................... -a $LOG sendEmail -f $SENDER -t $MAIL_02 -u $ERRORE_COPIA -m $MD5SUM_C_ISO " NON ESISTE " -s ..................... -a $LOG sendEmail -f $SENDER -t $MAIL_03 -u $ERRORE_COPIA -m $MD5SUM_C_ISO " NON ESISTE " -s ..................... -a $LOG sendEmail -f $SENDER -t $MAIL_04 -u $ERRORE_COPIA -m $MD5SUM_C_ISO " NON ESISTE " -s ..................... -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........... -a $LOG sendEmail -f $SENDER -t $MAIL_02 -u $ERRORE_COPIA -m $MD5SUM_C_DVD " NON ESISTE " -s .......... -a $LOG sendEmail -f $SENDER -t $MAIL_03 -u $ERRORE_COPIA -m $MD5SUM_C_DVD " NON ESISTE " -s ...........-a $LOG sendEmail -f $SENDER -t $MAIL_04 -u $ERRORE_COPIA -m $MD5SUM_C_DVD " NON ESISTE " -s ...........-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 ............ -a $MD5SUM_CONTROL $LOG sendEmail -f $SENDER -t $MAIL_02 -u "ERRORE md5 in Backup" -m " md5sum CON ERRORE check allegato " -s ............. -a $MD5SUM_CONTROL $LOG sendEmail -f $SENDER -t $MAIL_03 -u "ERRORE md5 in Backup" -m " md5sum CON ERRORE check allegato " -s ............. -a $MD5SUM_CONTROL $LOG sendEmail -f $SENDER -t $MAIL_04 -u "ERRORE md5 in Backup" -m " md5sum CON ERRORE check allegato " -s ............. -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 .......... -a $MD5SUM_CONTROL $LOG sendEmail -f $SENDER -t $MAIL_02 -u "Backup OK" -m "Controllo Backup andato a buon fine 2" -s .......... -a $MD5SUM_CONTROL $LOG sendEmail -f $SENDER -t $MAIL_03 -u "Backup OK" -m "Controllo Backup andato a buon fine 2" -s .......... -a $MD5SUM_CONTROL $LOG sendEmail -f $SENDER -t $MAIL_04 -u "Backup OK" -m "Controllo Backup andato a buon fine 2" -s .......... -a $MD5SUM_CONTROL $LOG fi fi echo >> $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 echo "Fine LOG ********************************" >> $LOG echo "Fine LOG ********************************" date >> $LOG eject $DEVDVD Grazie mille a tutti e ancora HELP -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/aanlktim1hf9k7xdolk-zmsmy7naq6wyofwsuzndy_...@mail.gmail.com