From 1d3e3482bef095acc4e3d2ebd058037b7710001b Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Fri, 8 Jul 2005 16:24:57 +0000 Subject: [PATCH] Added stefani's makecd handler --- changelog | 1 + etc/backup.d/example.makecd | 31 +++++++++++++ handlers/makecd | 86 +++++++++++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+) create mode 100644 etc/backup.d/example.makecd create mode 100644 handlers/makecd diff --git a/changelog b/changelog index aeae385..8f408e9 100644 --- a/changelog +++ b/changelog @@ -2,6 +2,7 @@ version 0.7 -- July 3 2005 added ninjahelper: a dialog based wizard for creating backupninja configs. considerably improved and changed the log file output. you can now disable actions with .disabled (this is new preferred method). + added makecd handler and example.makecd for backing up to cd/dvd version 0.6 -- June 16 2005 ldap handler has new options: backup method to use (ldapsearch or diff --git a/etc/backup.d/example.makecd b/etc/backup.d/example.makecd new file mode 100644 index 0000000..b01094e --- /dev/null +++ b/etc/backup.d/example.makecd @@ -0,0 +1,31 @@ + +# TYP is cd or dvd AS WELL AS the disk inside!! +burnertype = cd + +# system (yes) or directory/files (no) +# this function not yet implemented +#system = yes + +# location for image file +backupdir = /var/backups/makecd + +# image filename +imagefile = example.iso + +# iso or burn to cd/dvd? +isoonly = no + +# cd/dvd burner device +device=/dev/hdc + +# base directory to include in the backup +target = / + +# files or directories to be excluded +exclude = /proc +exclude = /lost+found +exclude = /tmp + +# backupninja will perfrom this at gvien date/time +when = wednesday at 02:00 + diff --git a/handlers/makecd b/handlers/makecd new file mode 100644 index 0000000..81c957d --- /dev/null +++ b/handlers/makecd @@ -0,0 +1,86 @@ +# +# burncd handler script for backupninja +# +getconf backupdir /var/backups/makecd +getconf exclude +getconf target +getconf burnertype cd +getconf system no +getconf isoonly yes +getconf imagefile backup.iso +getconf device + +# define needed executables: +MKISOFS="/usr/bin/mkisofs" +GROWISOFS="/usr/bin/growisofs" +#CDRECORD="/usr/bin/cdrecord" +CDRECORD="/usr/bin/cdrecord.mmap" +CDRDAO="/usr/bin/cdrdao" +DVDINFO="/usr/bin/dvd+rw-mediainfo" + +# create backup dirs and check existence of progs. + +[ -d $backupdir ] || mkdir -p $backupdir +[ -d $backupdir ] || fatal "Backup directory '$backupdir'" +[ -e "$target" ] || fatal "target does not exist " + +[ -x "$MKISOFS" ] || debug 3 "echo executable mkisofs not present" +[ -x "$GROWISOFS" ] || debug 3 "echo executable growisofs not present" +[ -x "$CDRECORD" ] || debug 3 "echo executable cdrecord not present" +[ -x "$CDRDAO" ] || debug 3 "echo executable cdrdao not present" + +if [ "$isoonly" == "no" ]; then + [ -e $device ] || fatal "No Burner device available" +fi + +outputfile="$backupdir/$imagefile" +execstr="$MKISOFS --quiet -R -o $outputfile " + +str="" +# excludes +for i in $exclude; do + str=" -x ${i}$str" +done + +debug 0 "echo $str " +execstr="${execstr} $str $target " +debug 0 "echo $execstr " + +output=` $execstr 2>&1 ` +code=$? +if [ "$code" == "0" ]; then + debug $output + info "Successfully finished creation of iso" +else + warning $output + warning "Failed to create iso" +fi + +if [ "$isoonly" == "no" ]; then + + if [ "$burnertype" == "cd" ]; then + # burning iso to CD + $CDRECORD -v gracetime=2 dev=$device speed=8 -dao -data $outputfile + code=$? + if [ "$code" == "0" ]; then + debug $output + info "Successfully burned CD" + else + warning $output + warning "Failed to create CD" + fi + fi + if [ "$burnertype" == "dvd" ]; then + # burning iso dvd + $GROWISOFS -speed=2 -Z $device=$outputfile -use-the-force-luke=notray -use-the-force-luke=tty + code=$? + if [ "$code" == "0" ]; then + debug $output + info "Successfully burned DVD" + else + warning $output + warning "Failed to create DVD" + fi + fi +fi +return 0 -- 2.30.2