мета-данные страницы
  •  

Бэкапирование mysql баз почтового сервера

#!/bin/bash
# Задаем системные переменные, чтобы в скрипте не прописывать полные пути.
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
# Сюда складываем резервные копии 
destination="/mnt/Backup_mail/MySQL/"
# Логин и пароль для подключения к БД
userDB="root"
passwordDB="Пароль от базы данных"
# Дата запуска скрипта
fdate=`date +%Y-%m-%d`
# Удаление старых бэкапов старше 30 дней, оставляем каждое 15 число
find $destination -type d \( -name "*-1[^5]" -o -name "*-[023]?" \) -mtime +30 -exec rm -R {} \; 2>&1
# Удаление резервных копий старше 65 дней 
find $destination -type d -name "*-*" -mtime +65 -exec rm -R {} \; 2>&1
# Создание папки с датой в названии
test -d $destination/$fdate || mkdir $destination/$fdate 2>&1
# Подключаемся к базе данных и вытаскиваем список всех баз. Для каждой делаем резервную копию.
for dbname in `echo show databases | mysql -u$userDB -p$passwordDB | grep -v Database`; do
# Игнорируем служебные базы
    case $dbname in
        information_schema)
            continue ;;
        mysql)
            continue ;;
        performance_schema)
            continue ;;
        test)
            continue ;;
        sys)
            continue ;;
# Делаем копии баз данных
        *) mysqldump --databases --skip-comments --no-tablespaces -u$userDB -p$passwordDB $dbname | gzip > $destination/$fdate/$dbname.sql.gz ;;
    esac
done;

Обсуждение

Ваш комментарий: