Darian Anthony Patrick on 12 Mar 2005 22:39:43 -0000


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

Re: [PLUG] cdrecord backups that are very reliable


This is awesome.  Thanks alot, Sandy!

On Sat, 2005-03-12 at 10:39 -0500, sandy wrote:
> sometime ago there was an e-mail discussion about cd backups.
> I have worked on making cd backups for our new machine for the business.
> I am enclosing an e-mail that I sent to the the person that wrote
> the CD-WRITTING_HOWTO.
> 
>  I would like to thank you for CD-Writing-HOWTO.
>  It is a very useful document and was greatly appreciated.
> 
>  There is, however one flaw in the write up that I would like
>  to see changed so others will not struggle as I have.  I spent
>   a long  time trying to  get bru and afio do effective CD backups
>  
> At the end of your excellent CD-Writing-HOWTO  in section 4.27 you state
> 
> "4.27   What will cdrecord do when it stops getting input from the
>          pipe?"
> 	 
> 	This statement should  be removed.
> 	  One cannot pipe  to cdrecord and make a working backup.
> 	  
> 	 It does not work for bru or afio.   It cannot retrieve  the
> 	 tail files in the backup because of the linux read ahead feature.
> 	 To backup to a CD ROM, one must first form the whole backup
> 	 under /tmp or some other temporary  area.
> 	 Now check to make sure that the file will fit on the CD (an
> 	 added bonus)
> 	 Then do mkisofs and cdrecord
> 	 
> 	 Next  following the advice given by
> 	 Mr Steve Litt in "Coasterless CD Burning"
> 	    presented by Troubleshooters.com and T.C Linux Library
>          One must md5sum the archive formed by cdrecord in memory 
> 	       md5sum /tmp/cd_image
> 	  and md5sum the /CD R or CD RW archive. 
> 	        md5sum /cdrom/afio.arch
>       
>       I have  had cdrecord state that the CDR was successfully written.	
>       I then
>            md5sum /cdrom/afio.arch.  md5sum reported multiple I/O
> 	   failures  reading the archive.
> 	   The CD write had failed. The afio archive was on a CDRW disk.
> 	I blanked the disk and reran my script.  The second time was successful.
>      
>       
>     Enclosed  are 3 scripts that I wrote to do the backup.
> 
>    #1)  file daily  .. the master script
> 
>            #!/bin/sh
> 	  date > /tmp/start_time
> 	  
> 	  # cd_file_find  reads a file containing all of the desired
> 	  #   directories ,one directory per line.
> 
>           # cd_file_find forms a file,/tmp/cd_files, containing all the files to
> 	  # back up.  
> 
>               /home/vm/cd/cd_file_find /home/vm/cd/daily_directories
>           # cdrom_backup forms the afio file,/tmp/afio.arch, and records to CDR
> 
>              /home/vm/cd/cdrom_backup 
> 
>             echo "end   "   `date`
>            echo -n "start "  
>           cat /tmp/start_time
> 
> #2)cd_file_find  file listing directories desired: one directory /line
> 
>     #!/bin/sh
>      #   program used to produce a list of files in all  directories
>      #      listed in the file $1
>      if [ $# -eq 0 ]
>         then
>        echo " need a file of directories"
>        exit 1
> 
>     fi
>   
>    rm /tmp/cd_files
>    for i in `cat $1`
>     do
>      find $i  >>/tmp/cd_files
>    done
> 
> #3 cdrom_backup   
> #!/bin/sh
> #  cdrom_backup   ............takes the files stored in /tmp/cd_files
> #                 ............ forms an afio archive....
> #                               checks that the afio operation was successful
> #                               checks that the afio archive is < 650m bytes
> #             ........  writes the afio archive to a cdrom image,/tmp/cd_image
> #                   .......... cdrecords the file and checks the md5sum
> 
> 
> #   backup log is in /home/cd_backup_log... the last log is appended to the
> #     file
> 
> cat /tmp/cd_files | afio -o -T 3k -L  /home/backup/cd_backup_log -Z -P bzip2 \
>      /tmp/afio.arch
>      
> #check that afio was successful
> tail -1 /home/backup/cd_backup_log  | grep successful 
> es=$?
> #echo "$es"  es
> if [ $? -ne 0 ]
>    then
>    echo "afio failed"
>    exit 1
>    fi
> 
> # check that the afio archive  will fit on the CD
> tail -2 /home/backup/cd_backup_log   | grep afio >/tmp/checks
> cut -d" " -f4 /tmp/checks | cut -d"m" -f1 | cat >/tmp/checks
> declare -i a
> read a </tmp/checks
> echo "$a" backup size
> 
> if [ $a -gt 650 ]
>    then
>    echo  backup files are to big at "$a" 
>    echo  backup files are to big at "$a" >>/home/backup/cd_backup_log 
>    
>    exit 1
>    fi
> 
> mkisofs -r -o /tmp/cd_image /tmp/afio.arch
> 
> cdrecord dev=1,0,0 speed=5 -v -pad  /tmp/cd_image
> 
> md5sum /tmp/afio.arch  | cut -d" " -f1 >/tmp/atmp
> c=`cat /tmp/atmp`
> echo "$c"
>   mount /cdrom
>       md5sum /cdrom/afio.arch | cut -d" " -f1 >/tmp/atmp1
>       b=`cat /tmp/atmp1`
>    umount /cdrom
> echo "$b"
> if [ "$c" != "$b" ]
>    then
>    echo " bad cdrom write"
>    echo " bad cdrom write"  >>/home/backup/cd_backup_log 
>    exit 1
>    else
>    echo " successful cdrom write" 
>    echo " successful cdrom write"  >>/home/backup/cd_backup_log 
>    fi
> 
>  date
> exit 0
> 
> 
> ##########
> again, thank you for taking the time to write CD-Writing-HOWTO.
> truly,
> sandy basickes    s_basic@verizon.net
> 
> ___________________________________________________________________________
> Philadelphia Linux Users Group         --        http://www.phillylinux.org
> Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
> General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug
-- 
Darian Anthony Patrick
Network and Systems Integration Consultant
dapatrick@darianpatrick.com
http://www.darianpatrick.com
--
GPG Fingerprint: BCF1 E7AD 15AD 8A99 F613  AF5F 2A9C C45C F580 E087
About OpenPGP: http://www.openpgp.org/about_openpgp/

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug