Вариант резервного копирования

Напишу ниже простой пример резервного копирования mysql баз данных с помощью mysqldump.

Создаем исполняемый файл и пишем в него строку:

mysqldump -u USER -h localhost -pPASSWORD DATABASE | gzip -c > /home/backups/mysqldump/databasename_`date +%Y-%m-%d`.sql.gz

Чтобы при дампе базы исключить некоторые таблицы необходимо дописать:

--ignore-table=database.table --ignore-table=database.table

Чтобы сделать дамп самой структуры без данных:

--no-data

В случае ошибки «Mysqldump error 1044: Access denied for user to database when using LOCK TABLES» после mysqldump добавить:

--skip-opt

Mysql пользователю назначим права:

GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';

Добавляем ссылку на новый файл в /etc/crontab (планировщик будет выполнять его каждый день в 4 утра):

0 4 * * * user /home/backups/backups.sh > /dev/null 2>&1

Также в скрипт можно добавить резервное копиирование директорий, например:

tar -cvjf /home/backups/etc/`date +%Y-%m-%d`_etc.tar.bz2 /etc/
tar -cvjf /home/backups/www/`date +%Y-%m-%d`_www.tar.bz2 /var/www/

Также можно регулярно клонировать github репозиторий, например репозиторий Trinity Core:

mkdir /home/backups/trinitycore/`date +%Y-%m-%d`
cd /home/backups/trinitycore/`date +%Y-%m-%d`
wget https://github.com/TrinityCore/TrinityCore/archive/4.3.4.zip
wget https://github.com/TrinityCore/TrinityCore/archive/master.zip

Как удалять старые резервные копии автоматически, чтоб не забивался диск я писал в этой статье — Скрипт удаления старых файлов

Смотрите также мои статьи:
Импорт и экспорт MySQL баз данных
Подключение к MySQL без ввода пароля

Оставьте комментарий

Добавить комментарий