Ldap dump
De BlaxWiki
Révision datée du 13 mai 2013 à 18:00 par 217.174.199.129 (discussion)
Ce script de dump est avancé, avec une rétention et purge des dumps. La fonction "send" est propre à la supervision sur cette plateforme et doit être supprimée (ou à adapter pour remonter une info).
- Infos supplémentaires :
Le backup d'un openldap utilisant ldbm ne peut se faire qu'a froid. Le support ldbm a d'ailleurs été supprime d'openldap 2.4 en partie en raison des problemes lies a l'utilisation de ce format (ce qui est notre cas ici). Sinon il faut convertir la base en bdb pour backuper à chaud
#!/bin/sh
DATE=`date +%Y-%m-%d`
DUMP_LOG="/var/log/ldapdump.log"
DESTDIR="/opt/data/ldap_backup/CURRENT"
OLDESTDIR="/opt/data/ldap_backup/OLD"
LOGDIR="/var/log/"
SERVICE="backup"
VISION="/opt/agarik/Vision/bin/bb_send_raw"
DISPLAY="supervision.agarik.com"
TARGET="$(hostname | sed -e 's/\./,/g')"
LIFE_MESSAGE="1560"
RETENTION_TIME="192" # en heures
# Supervision
Send()
{
"${VISION}" "${DISPLAY}" "status+${LIFE_MESSAGE} ${TARGET}.${SERVICE} ${1} $(date) ${SERVICE} ${2}"
}
if [ ! -d $DESTDIR ]; then mkdir -p $DESTDIR;fi
if [ ! -d $OLDESTDIR ]; then mkdir -p $OLDESTDIR;fi
# Purge des anciens dumps :
/usr/sbin/tmpwatch 192 $OLDESTDIR
# Deplacement du dump de la veille dans OLD :
mv $DESTDIR/* $OLDESTDIR/
# Execution du dump :
exec 1> $LOGDIR/ldapdump.ok
exec 2> $LOGDIR/ldapdump.error
# OpenLDAP stop
/etc/init.d/slapd stop
CHECK=`/sbin/pidof slapd|wc -l`
if [ $CHECK -gt 0 ]
then
for i in `ps aux | grep -v grep | grep slapd | awk '{print $2}'`
do
kill $i
done
fi
# Do the export
/opt/applis/openldap/sbin/slapcat -l $DESTDIR/backup-$DATE.ldif -f /opt/applis/openldap/etc/openldap/slapd.conf
# OpenLDAP start
/etc/init.d/slapd start
if [ $? -ne 0 -o -s $LOGDIR/ldapdump.error ]; then
echo "Attention probleme lors des dumps ldap de cette nuit!"
color="red"
Send "${color}" "$(cat $LOGDIR/ldapdump.error)"
exit 1
fi
echo "dumps des bases ldap OK"
echo "`ls -lh $DESTDIR`"
color="green"
Send "${color}" "$(cat $LOGDIR/ldapdump.ok)"
exit 0