#! /bin/bash BASE_DIR="/var/backup/mysql" DATE=$(date +%Y%m%d%H%M) LOG='' PURGEDAYS=8 echo "Backing up MySQL databases..." mysql --defaults-file=/etc/mysql/debian.cnf --batch --skip-column-names -e "show databases" | while read DB ; do if [ "${DB}" == "information_schema" -o "${DB}" == "performance_schema" ]; then echo "Ignoring "${DB}" " OPT="--skip-lock-tables " else echo "Dumping "${DB}" ..." OPT="--opt" mysqldump --defaults-file=/etc/mysql/debian.cnf --events --ignore-table=mysql.events "${OPT}" "${DB}" -r${BASE_DIR}/${DB}_${DATE}.sql gzip ${BASE_DIR}/${DB}_${DATE}.sql fi done # purge old dumps echo " " echo " " echo "Removing old backup" find ${BASE_DIR}/ -name "*.sql*" -mtime +${PURGEDAYS} -delete -print