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

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

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

mysqldump -u user -h localhost -pПАРОЛЬ имябазы | gzip -c > /home/backups/mysqldump/имябазы/имябазы_`date +%Y-%m-%d`.sql.gz

Чтобы при дампе базы исключить некоторые таблицы необходимо дописать:
—ignore-table=база.таблица —ignore-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

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

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