added patch to mysql handler from Daniel.Bonniot@inria.fr
authorElijah Saxon <elijah@riseup.net>
Thu, 15 Sep 2005 18:36:23 +0000 (18:36 +0000)
committerElijah Saxon <elijah@riseup.net>
Thu, 15 Sep 2005 18:36:23 +0000 (18:36 +0000)
(adds ignores option)

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
     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.
 
 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 backupdir /var/backups/mysql
 getconf databases all
+getconf ignores
 getconf dbhost localhost
 getconf hotcopy no
 getconf sqldump no
 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
 
        [ -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
 
 # 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
 # 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'"
        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
 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
        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
                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
                fi
                debug "su $user -c '$execstr'"
                if [ ! $test ]; then