it-artikel:linux:automatische-datensicherung-der-lokalen-ldap-datenbank-anfertigen

Differences

This shows you the differences between two versions of the page.


it-artikel:linux:automatische-datensicherung-der-lokalen-ldap-datenbank-anfertigen [2022-08-31 12:30] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +====== Automatische Datensicherung der lokalen LDAP Datenbank anfertigen ======
 +
 +Das ist nur ein Beispiel wie man mit wenig Aufwand sich die lokalen LDAP (OpenLDAP) Daten (komplette Datenbank) automatisiert wegsichern kann.
 +
 +Es sichert die LDAP Daten auf ZWEI WEGEN. Der erste Weg bedient sich dem reinen LDAP Protokoll und versucht so viele Daten wie möglich abzusaugen. Operational Attribute werden auf diesem Wege jedoch nicht ausgegeben. Daher halte ich diese Methode nicht für sehr Sinnvoll. Allerdings wurde ich angehalten die Daten dennoch auch auf diesem WEge zu sichern. Methode zwei sichert die LDAP Datenbank über einen DIREKTEK Zugriff auf die OpenLDAP Datenbank und "dumped" diese sozusagen direkt in ein Textfile. Hier steht nun wirklich ALLES drin! Ein solches Backupfile lässt sich auch mit nur wenig Aufwand schnell wieder auf einen OpenLDAP Server aufbringen. 
 +
 +
 +==== /usr/local/sbin/backup-ldap-dit.sh ====
 +
 +<code bash backup-ldap-dit.sh>
 +#!/bin/bash
 +#set +x
 +########################################################################
 +# Backup-Script für den LDAP DIT
 +# /usr/local/sbin/backup-ldap-dit.sh
 +# Das Script soll über crontab (/etc/crontab) ein mal am Tag aufgerufen werden.
 +# Alle wichtigen Daten sind über Variablen am Anfang dieses Scripts konfiguriert
 +# werden.
 +#
 +# Letzte Änderungen:
 +# ========================
 +# 2009-07-06 A.Werner ursprüngliches Script etwas umgeschrieben damit
 +# es besser konfigurierbar wird. (Variablen)
 +#
 +# 2009-09-23 A.Werner ADD: retention time parameter hinzugefügt
 +# damit lässt sich definieren wie lange backup
 +# files aufbewahrt werden sollen.
 +# Default 90 Tage
 +#
 +# 2009-10-23 A.Werner FIX: das löschen des temp files nach getaner
 +# Arbeit setzt vorraus dass es ein solches File
 +# gibt, da es sonst zum fehler kommt. 
 +# Daher wird nun das temp file mit "touch"
 +# zuvor angelegt.
 +#
 +# 2009-11-02 A.Werner FIX: der FIX vom 23.10. war bullshit!
 +# cat $file | xargs > $file ergibt eine leere
 +# Datei! Darum musste eine separate temp datei
 +# her.
 +#
 +#
 +#######################################################################
 +# CONFIGURE HERE ! ! !
 +#######################################################################
 +#
 +# Enter Backup-Destination directory here! TRAILING SLASH (/) IS A MUST!
 +#
 +DESTINATION='/root/LDAP-BACKUPS/'
 +
 +#
 +# Enter retention time here! how long should i keep backup files before
 +# deleting them ?
 +#
 +RETENTIONDAYS='90'
 +
 +# Enter your LDAP Manager DN (maybe ROOT DN) here. This LDAP Object needs 
 +# read permissions in the LDAP DIT to query all data for backup. 
 +# If not using your LDAP Manager (ROOT DN) then you will have to check ACLs.
 +#
 +LDAPMANAGER='cn=ldapmanager,dc=someou,dc=higherou,dc=de'
 +
 +#This file must contain the LDAP Managers Password in CLEARTEXT.
 +# Make sure this File is only readable by ROOT !!!
 +#
 +LDAPMANAGERPASSWD='/etc/ldap/ldap-manager.secret'
 +
 +#Using SSL/TLS ? Set to 'yes' or 'no'
 +#
 +TLS='yes'
 +
 +
 +###########################################
 +D=`date +%F-%H%M`
 +
 +#############
 +#### Delete older files that exceed the retention time
 +#############
 +
 +OLDFILES=`mktemp`
 +MYARGS=`mktemp`
 +
 +find "$DESTINATION" -mtime +"$RETENTIONDAYS" >"$OLDFILES"
 +
 +#echo "DEBUG: ES WURDEN `cat $OLDFILES  | wc -l` UEBERALTE FILES GEFUNDEN."
 +
 +if [ $(cat $OLDFILES  | wc -l) -gt 0 ]; then
 + cat $OLDFILES | xargs >"$MYARGS"
 + rm `cat "$MYARGS"`
 +fi
 +
 +# cleaning temp files
 +rm "$OLDFILES"
 +rm "$MYARGS"
 +
 +#############
 +#### Backup DIT
 +#############
 +
 +# Strategie 1:
 +#
 +# ANMERKUNG A.WERNER: Ich halte diese Methode für schlecht, 
 +# da wichtige Datenfelder nicht angezeigt und damit
 +# auch nicht gesichert werden.
 +ldappw=`cat "$LDAPMANAGERPASSWD"`
 +
 +if [ "$TLS" = "yes" ] ; then
 + # if using TLS/SSL
 + ldapsearch -D "$LDAPMANAGER" -x -ZZ -w $ldappw > "${DESTINATION}ldapdb-${D}.ldif"
 +else
 + # if NOT using TLS/SSL
 + ldapsearch -D "$LDAPMANAGER" -x -w $ldappw > "${DESTINATION}ldapdb-${D}.ldif"
 +fi
 +
 +# Strategie 2:
 +#
 +slapcat -l "${DESTINATION}ldapdb-${D}-slapcat.ldif"
 +
 +#############
 +#### Secure the Backup files and compress them
 +#############
 +chmod 400 "${DESTINATION}ldapdb-${D}.ldif" "${DESTINATION}ldapdb-${D}-slapcat.ldif"
 +gzip -f "${DESTINATION}ldapdb-${D}.ldif" "${DESTINATION}ldapdb-${D}-slapcat.ldif"
 +
 +exit 0
 +
 +
 +</code>
 +
 + --- //[[mail@awerner.homeip.net|Axel Werner]] 2010-12-30 19:43//
 +
 +
 +{{tag>debian 5 lenny linux openldap ldap dasi automatische backup datensicherung dump articles artikel scripting shell bash}}
 +
 +
 +