added patch to mysql handler from Daniel.Bonniot@inria.fr
authorelijah <elijah@758a04ac-41e6-0310-8a23-8373a73cc35d>
Thu, 15 Sep 2005 18:36:23 +0000 (18:36 +0000)
committerelijah <elijah@758a04ac-41e6-0310-8a23-8373a73cc35d>
Thu, 15 Sep 2005 18:36:23 +0000 (18:36 +0000)
(adds ignores option)

git-svn-id: http://code.autistici.org/svn/backupninja/trunk@175 758a04ac-41e6-0310-8a23-8373a73cc35d

changelog
handlers/mysql

index 8e056cfb238a58176e41a0b789ff37783ea04aa4..81b4f1689306b328218f667d8b3737fbb70c96c0 100644 (file)
--- a/changelog
+++ b/changelog
@@ -29,6 +29,8 @@ version 0.8 --
     rdiff handler now does not require 'label'
     changes to mysql and svn handlers' vservers support
         these handlers now check if the source vserver is running
+    added 'ignores' for mysql handler. (thanks Daniel.Bonniot@inria.fr)
+
 
 version 0.7 -- July 26 2005
        added ninjahelper: a dialog based wizard for creating backupninja configs.
index e5306db4c5a42adafcafeb87e31f29f24c163328..57b9ecfe52b2fb695279f8816ed4c77c83d5c080 100644 (file)
@@ -4,6 +4,7 @@
 
 getconf backupdir /var/backups/mysql
 getconf databases all
+getconf ignores
 getconf dbhost localhost
 getconf hotcopy no
 getconf sqldump no
@@ -25,6 +26,14 @@ else
        [ -f $userhome/.my.cnf ] || fatal "Can't find config file in $userhome/.my.cnf"
 fi
 
+## Prepare ignore part of the command
+## This only works for mysqldump at the moment
+
+ignore=''
+for i in $ignores; do
+       ignore="$ignore --ignore-table=$i"
+done
+
 # If vservers are configured, decide if the handler should
 # use them or if it should just operate on the host
 
@@ -42,13 +51,13 @@ fi
 # If needed, make sure that the specified vserver exists and is running.
 if [ $usevserver ]
 then
-        info "examining vserver '$vsname'"
-        # does it exist ?
+       info "examining vserver '$vsname'"
+       # does it exist ?
        vroot="$VROOTDIR/$vsname"
        [ -d $vroot ] || fatal "vserver '$vsname' does not exist at '$vroot'"
-        # is it running ?
-        running=`$VSERVERINFO $vsname RUNNING`
-        [ $running = 1 ] || fatal "vserver $vsname is not running."
+       # is it running ?
+       running=`$VSERVERINFO $vsname RUNNING`
+       [ $running = 1 ] || fatal "vserver $vsname is not running."
 fi
        
 # create backup dirs, the vroot variable will be empty if no vsname was specified
@@ -181,9 +190,9 @@ if [ "$sqldump" == "yes" ]; then
        for db in $databases; do
                if [ $usevserver ]
                then
-                       execstr="$VSERVER $vsname exec $MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $db > $vroot$dumpdir/${db}.sql"
+                       execstr="$VSERVER $vsname exec $MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db > $vroot$dumpdir/${db}.sql"
                else
-                       execstr="$MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $db > $dumpdir/${db}.sql"
+                       execstr="$MYSQLDUMP $defaultsfile --lock-tables --complete-insert --add-drop-table --quick --quote-names $ignore $db > $dumpdir/${db}.sql"
                fi
                debug "su $user -c '$execstr'"
                if [ ! $test ]; then