* Move ldap/client to software submodule as ldap * Rename ldap/server to ldap-server
32 lines
888 B
Bash
Executable file
32 lines
888 B
Bash
Executable file
#!/bin/bash
|
|
|
|
umask 027
|
|
|
|
PATH="/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin"
|
|
|
|
if [ "$(whoami)" != "ldap" ]; then
|
|
echo "ERR: Script needs to be run as ldap user" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
BACKUPDIR="/srv/backup"
|
|
BACKUPAGE="7"
|
|
|
|
DATE="$(date '+%Y-%m-%d')"
|
|
|
|
ldapsearch -LLL -x -H ldapi:// -s base -b 'cn=Databases,cn=Monitor' \
|
|
'(objectClass=*)' namingContexts | \
|
|
sed -n 's/^namingContexts: \(.*\)/\1/p' | while read db ; do
|
|
[ "${db}" = "cn=config" ] && continue
|
|
slapcat -f /etc/openldap/slapd.conf -b "${db}" 2> /dev/null | gzip > \
|
|
"${BACKUPDIR}/${db}.${DATE}.gz"
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERR: Failed to backup database ${db}" 1>&2
|
|
continue
|
|
fi
|
|
done
|
|
|
|
cd ${BACKUPDIR} && {
|
|
find . -xdev -depth -mindepth 1 -maxdepth 1 -type f -mtime +${BACKUPAGE} \
|
|
-name '*.gz' -execdir rm -f -- {} \;
|
|
}
|