X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=handlers%2Fldap.in;h=d929252d0b021ec0698a47fa4e6302693cd9f46a;hb=fc4d3185e41742984adc39a22f53ee1c96ff1e86;hp=83d6a6f73a2aac025d956ac57694838f5ad0b242;hpb=02d453979b6d78bb1e6a27bfb731133611132371;p=matthijs%2Fupstream%2Fbackupninja-vserver.git diff --git a/handlers/ldap.in b/handlers/ldap.in index 83d6a6f..d929252 100644 --- a/handlers/ldap.in +++ b/handlers/ldap.in @@ -44,8 +44,8 @@ fi status="ok" -make_backup() { - vsname=$1 +function make_backup() { + vsname="$1" if [ -z "$vsname" ]; then info "Running on host" vdir="" @@ -56,20 +56,20 @@ make_backup() { vexec="$VSERVER $vsname exec" fi - [ -f $vdir$conf ] || fatal "slapd config file ($conf) not found" - [ -d $backupdir ] || mkdir -p $backupdir - [ -d $backupdir ] || fatal "Backup directory '$backupdir'" + dumpdir="`interpolate "$backupdir" "$vsname"`" + info "Backing up to dir '$dumpdir'" + + [ -f "$vdir$conf" ] || fatal "slapd config file ($conf) not found" + [ -d "$dumpdir" ] || mkdir -p "$dumpdir" + [ -d "$dumpdir" ] || fatal "Backup directory '$dumpdir'" dbsuffixes=(`@AWK@ 'BEGIN {OFS=":"} /[:space:]*^database[:space:]*\w*/ {db=$2}; /^[:space:]*suffix[:space:]*\w*/ {if (db=="bdb"||db=="hdb"||db="ldbm") print db,$2}' $vdir$conf|@SED@ -e 's/[" ]//g'`) ## LDIF DUMP if [ "$ldif" == "yes" ]; then - dumpdir="$backupdir" - [ -d $dumpdir ] || mkdir -p $dumpdir - if [ "$databases" == 'all' ]; then - dbcount=`grep '^database' $vdir$conf | wc -l` + dbcount=`grep '^database' "$vdir$conf" | wc -l` let "dbcount = dbcount - 1" databases=`seq 0 $dbcount`; fi @@ -111,15 +111,15 @@ make_backup() { if [ "$compress" == "yes" ]; then ext=".gz" fi - touch $dumpdir/$dbsuffix.ldif$ext - if [ ! -f $dumpdir/$dbsuffix.ldif$ext ]; then + touch "$dumpdir/$dbsuffix.ldif$ext" + if [ ! -f "$dumpdir/$dbsuffix.ldif$ext" ]; then fatal "Couldn't create ldif dump file: $dumpdir/$dbsuffix.ldif$ext" fi if [ "$compress" == "yes" ]; then - execstr="$execstr | $GZIP > $dumpdir/$dbsuffix.ldif.gz" + execstr="$execstr | $GZIP > \"$dumpdir/$dbsuffix.ldif.gz\"" else - execstr="$execstr > $dumpdir/$dbsuffix.ldif" + execstr="$execstr > \"$dumpdir/$dbsuffix.ldif\"" fi # Run inside the vserver if needed execstr="$vexec $execstr" @@ -145,7 +145,7 @@ make_backup() { if [ $usevserver = yes ]; then for vserver in $vsnames; do - make_backup $vserver + make_backup "$vserver" done else make_backup ""