SHIFT-WIKI

--- Sjoerd Hooft's InFormation Technology ---

User Tools

Site Tools


opendsldifexport

OpenDS LDIF Export

This script will create a ldif export from a running OpenDS installation.

#!/bin/bash
# set -x
# Created by s.hooft, 22-03-2011, sjoerd_warmetal.nl

### Script Variables
WHATAMI=`basename $0`

### LDAP Variables
DUMPDIR=/var/backup/ldif
MANAGER=cn=manager
PASSWD=xxxxxxxx
HOSTNAME=`hostname`
HOSTNAME_SHORT=`hostname -s`
LDAPBASE="o=company.local"

### Offsitecopy Variables
GZIP=/usr/bin/gzip
. "/opt/scripts/mail.txt"
. "/opt/scripts/offsitecopy.func"
TOUSER="repluser"
TOHOST="syncsrv.company.local"
TODIR="/srv/syncdata/LDAP"
LDIFFILE=${DUMPDIR}/${HOSTNAME_SHORT}-LDAP_`date +%Y%m%d%H%M`.ldif
BACKUPFILE="$LDIFFILE.gz"
LOGFILE=${DUMPDIR}/ldapbackup.log
DOCOPY="1"

### Create new logfile
echo "Creating ldif backup $LDIFFILE using $MANAGER on $LDAPBASE" > $LOGFILE

mailFunction() {
   if [ "$1" == "LDIF" ]; then
      echo "LDIF backup was not created succesfully, consult $LOGFILE on ${HOSTNAME}" | mail -s "Failed $1 Backup" $MAILTOFAIL
   fi
   if [ "$1" == "GZIP" ]; then
      echo "Tar or zip was not created succesfully, consult $LOGFILE on ${HOSTNAME}" | mail -s "Failed $1 Backup" $MAILTOFAIL
   fi
   exit
}

backupFunction () {
   /opt/OpenDS-2.2.0/bin/export-ldif --bindDN "$MANAGER" --bindPassword "$PASSWD" --backendID userRoot --trustAll --excludeAttribute entryUUID --ldifFile $LDIFFILE >> $LOGFILE
   LDIFRESULT=$?
   if [ ! "$LDIFRESULT" == "0" ]; then
      mailFunction LDIF
   fi
   $GZIP $LDIFFILE >> $LOGFILE
   GZIPRESULT=$?
   if [ ! "$GZIPRESULT" == "0" ]; then
      mailFunction GZIP
   fi
   copyFunction
}

copyFunction() {
   if [ "$DOCOPY" == "1" ]; then
      offsitecopy "${BACKUPFILE}" "$TOUSER" "$TOHOST" "$TODIR" "$LOGFILE" "$WHATAMI" "$HOSTNAME" "$MAILTOSUCCESS" "$MAILTOFAIL"
   else
      echo >> $LOGFILE
      echo "Copy to offsite location is not enabled." >> $LOGFILE
      echo "Modify the script under Offsitecopy Variables to enable offsitecopy" >> $LOGFILE
      echo >> $LOGFILE
   fi
}

backupFunction

exit

The offsitecopy.func and mail.txt can be found here.

opendsldifexport.txt · Last modified: 2021/09/24 00:25 by 127.0.0.1