For MySQL database backup I use this script
#!/bin/sh
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin
umask 077
savedays="180"
backupdir="/mnt/backups/db"
now=`date "+%Y%m%d_%H%M"`
if [ ! -d ${backupdir} ] ; then
echo Creating ${backupdir}
mkdir -p ${backupdir}; chmod 700 ${backupdir};
fi
mysqldump -hlocalhost -uuser -ppassword --routines database | gzip > ${backupdir}/database_${now}.sql.gz 2>>/var/log/dbbackups.log
find ${backupdir} -name 'database_*' -a -mtime +${savedays} -print -delete
For LDAP backup I use this script:
#!/bin/sh
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin
umask 077
savedays="180"
backupdir="/mnt/backups/ldap"
now=`date "+%Y%m%d_%H%M"`
if [ ! -d ${backupdir} ] ; then
echo Creating ${backupdir}
mkdir -p ${backupdir}; chmod 700 ${backupdir};
fi
slapcat > ${backupdir}/ldap.${now}.ldif 2>>/var/log/ldapbackups.log
find ${backupdir} -name 'ldap_*' -a -mtime +${savedays} -print -delete
These script will save your database and LDAP backups to /mnt/backups/db and /mnt/backups/ldap accordingly. Backup files will be kept for 180 days and then they will be deleted.To automate backup you can simply place the scripts to the appropriate cron directory (e.g. /etc/cron.daily) and make sure that cron has rights to execute this file and has rights to write to /mnt/backups/db and /mnt/backups/ldap folders.