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 -deleteFor 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 -deleteThese 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.