getconf method ldapsearch
getconf passwordfile
getconf binddn
+getconf ldaphost
+getconf tls yes
+
+if [ $tls = 'yes' ]; then
+ URLBASE="ldaps"
+else
+ URLBASE="ldap"
+fi
status="ok"
[ -d $backupdir ] || mkdir -p $backupdir
[ -d $backupdir ] || fatal "Backup directory '$backupdir'"
-dbsuffixes=(`awk 'BEGIN {OFS=":"} /[:space:]*^database[:space:]*\w*/ {db=$2}; /^[:space:]*suffix[:space:]*\w*/ {if (db=="bdb"||db=="ldbm") print db,$2}' $conf|sed -e 's/[" ]//g'`)
+dbsuffixes=(`@AWK@ 'BEGIN {OFS=":"} /[:space:]*^database[:space:]*\w*/ {db=$2}; /^[:space:]*suffix[:space:]*\w*/ {if (db=="bdb"||db=="ldbm") print db,$2}' $conf|@SED@ -e 's/[" ]//g'`)
## LDIF DUMP
execstr="$SLAPCAT -f $conf -b $dbsuffix"
debug "$execstr"
else
- execstr="$LDAPSEARCH -x -L -b ""$dbsuffix"" -D ""$binddn"" -y $passwordfile"
+ if [ -n "$ldaphost" ]; then
+ execstr="$LDAPSEARCH -H $URLBASE://$ldaphost -x -L -b ""$dbsuffix"" -D ""$binddn"" -y $passwordfile"
+ else
+ execstr="$LDAPSEARCH -x -L -b ""$dbsuffix"" -D ""$binddn"" -y $passwordfile"
+ fi
[ -f "$passwordfile" ] || fatal "Password file $passwordfile not found. When method is set to ldapsearch, you must also specify a password file."
debug "$execstr"
fi
/etc/init.d/slapd stop
fi
- touch $dumpdir/$dbsuffix.ldif
- if [ ! -f $dumpdir/$dbsuffix.ldif ]; then
- fatal "Couldn't create ldif dump file: $dumpdir/$dbsuffix.ldif"
+ ext=
+ if [ "$compress" == "yes" ]; then
+ ext=".gz"
+ fi
+ touch $dumpdir/$dbsuffix.ldif$ext
+ if [ ! -f $dumpdir/$dbsuffix.ldif$ext ]; then
+ fatal "Couldn't create ldif dump file: $dumpdir/$dbsuffix.ldif$ext"
fi
- output=`$execstr > $dumpdir/$dbsuffix.ldif`
+ if [ "$compress" == "yes" ]; then
+ output=`$execstr | $GZIP > $dumpdir/$dbsuffix.ldif.gz`
+ else
+ output=`$execstr > $dumpdir/$dbsuffix.ldif`
+ fi
code=$?
if [ "$code" == "0" ]; then
debug $output
warning $output
warning "Failed ldif export of $dbsuffix"
fi
- if [ "$compress" == "yes" ]; then
- output=`$GZIP -f "$dumpdir/$dbsuffix.ldif" 2>&1`
- debug $output
- fi
if [ "$restart" == "yes" ]; then
debug "Starting ldap server..."