compatibilidad python3
This commit is contained in:
40
templates/ldap_backup.sh.j2
Normal file
40
templates/ldap_backup.sh.j2
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
# Ansible-generated LDAP backup script
|
||||
#
|
||||
# usage: ldap_backup.sh DN DIRECTORY KEEP
|
||||
# where:
|
||||
# DN is the base DN to backup
|
||||
# DIRECTORY is where to save the backup
|
||||
# KEEP number of backups to keep
|
||||
|
||||
# utility functions
|
||||
msg(){ ${VERBOSE:-true} && echo ${@} ; }
|
||||
assert(){ [[ $? -eq 0 ]] || { [[ -n ${1} ]] && msg ${@} ; exit 1 ; } }
|
||||
|
||||
# Base DN to backup
|
||||
DN=${1}
|
||||
# Directory where backups are saved
|
||||
BACKUP_DIR="${2:-{{ openldap_backup_dir }}}"
|
||||
# Number of backups to keep
|
||||
KEEP=${3:-{{openldap_backup_keep}}}
|
||||
|
||||
# validate arguments
|
||||
[[ -n "${DN}" ]] ; assert "ERROR: El primer argumento debe ser un DN."
|
||||
[[ -n "${BACKUP_DIR}" ]] ; assert "ERROR: el segundo argumento (dir de backup) no puede estar vacío."
|
||||
[[ "${KEEP}" -eq "${KEEP}" ]] 2> /dev/null ; assert "ERROR: el tercer argumento debe ser numérico."
|
||||
|
||||
# create backup dir
|
||||
mkdir -p "${BACKUP_DIR}"
|
||||
|
||||
# check for commands
|
||||
command -v /usr/sbin/slapcat > /dev/null
|
||||
assert "ERROR: no se encuentra 'slapcat', por favor instale ldap-utils."
|
||||
|
||||
# perform backup
|
||||
/usr/sbin/slapcat -H "ldap:///${DN}" | \
|
||||
gzip -9 > "${BACKUP_DIR}/${DN}_$(date '+%F%H%M').ldif.gz"
|
||||
assert "ERROR al hacer backup de ${DN}"
|
||||
|
||||
# remove old files
|
||||
find "${BACKUP_DIR}" -maxdepth 1 -type f -name "cn=config_*.ldif.gz" -print0 \
|
||||
| sort -z | tail -zn +${KEEP} | xargs -0 rm -f
|
||||
Reference in New Issue
Block a user