Added pgsql (PostgreSQL) handler, with vservers support.
[matthijs/upstream/backupninja.git] / backupninja
index 804c1c228285c5099849529237a69ba7dc9d475f..59361b30ae7d004f0768bc48047f2c59967408f0 100755 (executable)
@@ -163,8 +163,8 @@ function check_perms() {
        local perms=`ls -ld $file`
        perms=${perms:4:6}
        if [ "$perms" != "------" ]; then
-               echo "Configuration files must not be group or world readable! Dying on file $file"
-               fatal "Configuration files must not be group or world readable! Dying on file $file"
+               echo "Configuration files must not be group or world writable/readable! Dying on file $file"
+               fatal "Configuration files must not be group or world writable/readable! Dying on file $file"
        fi
        if [ `ls -ld $file | awk '{print $3}'` != "root" ]; then
                echo "Configuration files must be owned by root! Dying on file $file"
@@ -271,7 +271,7 @@ EOF
 function process_action() {
        local file="$1"
        local suffix="$2"
-
+       local run="no"
        setfile $file
 
        # skip over this config if "when" option
@@ -279,8 +279,10 @@ function process_action() {
        getconf when "$defaultwhen"
        if [ "$processnow" == 1 ]; then
                info ">>>> starting action $file (because of --now)"
+               run="yes"
        elif [ "$when" == "hourly" ]; then
                info ">>>> starting action $file (because 'when = hourly')"
+               run="yes"
        else
                IFS=$'\t\n'
                for w in $when; do
@@ -290,13 +292,15 @@ function process_action() {
                        IFS=$'\t\n'
                        if [ $ret == 0 ]; then
                                debug "skipping $file because it is not $w"
-                               return
                        else
                                info ">>>> starting action $file (because it is $w)"
+                               run="yes"
                        fi
                done
                IFS=$' \t\n'
        fi
+       debug $run
+       [ "$run" == "no" ] && return
        
        let "actions_run += 1"
 
@@ -434,6 +438,8 @@ getconf RDIFFBACKUP /usr/bin/rdiff-backup
 getconf MYSQL /usr/bin/mysql
 getconf MYSQLHOTCOPY /usr/bin/mysqlhotcopy
 getconf MYSQLDUMP /usr/bin/mysqldump
+getconf PGSQLDUMP /usr/bin/pg_dump
+getconf PGSQLDUMPALL /usr/bin/pg_dumpall
 getconf GZIP /bin/gzip
 getconf RSYNC /usr/bin/rsync
 getconf vservers no