Резервное копирование MySQL и всех файлов web сервера

Сегодня наконец озаботился резервным копированием своего сайта. Всегда считал, что складировать всю БД и все файлы с сервера более безопасное дело, чем пользоваться встроенными средствами. Во всяком случае для не сильно динамично изменяющихся сайтов, хотя для динамически изменяющихся (например форумы) можно и остановку сделать. Был написан скрипт для этого. Скрипт простейший. И просто запускается по крону раз в день. Так что сначала объясню команды, которые создают и разворачивают резервную копию.

Архивы будут создаваться в той папке, из которой были запущены команды.

Создать резервную копию всех файлов, а так же сжать все в gz

опишем используемые параметры:
-c создать архив.
-v подробный вывод процесса (люблю я подробный вывод).
-z сжать все с помощью gzip.
-f указываем имя файла, причем следующей командой формируется имя файла с датой создания.
date +blackdiver.net.files.%d-%m-%Y.%H-%M-%S.tar.gz добавляем к команде date имя файла.
-C /sites/blackdiver.net/www/ . (именно с точкой в конце) указываем рабочий путь. Чтобы пути в архиве начинались с папки, где лежат файлы сайта, а не с абсолютного пути (абсолютный путь на сервере: /sites/blackdiver.net/www/)

Развернуть резервную копию

-x извлечь из архива
-f извлекать будем из файла
blackdiver.net.files.tar.gz имя файла, из которого извлекаем.
-C в папку /sites/blackdiver.net/www/

То же самое делаем с базой данных.

Создать резервную копию БД

mysqldump утилита для создания дампа базы данных
-u указываем пользователя, которым будем подключаться. Имя пользователя после параметра пишется без пробела (-uAdmin)
-p использовать пароль. Пароль так же пишется без пробела (-pSuperPass)
-h указываем сервер БД (сервер mysql.blackdiver.net).
db_blackdiver имя базы данных, с которой снимаем резервную копию.
Далее все, что выдается передаем в gzip и говорим сохранить в файл (название файла формируется так же, как и для создания файловой резервной копии)

Развернуть бекап базы данных

Тут все с точностью наоборот. Разворачиваем архив в gunzip и передаем его в утилиту mysql для загрузки в БД.

Как настроить синхронизацию с Google Drive я рассказываю в статье: Grive синхронизация папок с Google Drive

А теперь собственно сам скрипт.

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

Заказать создание и поддержку безопасной IT-инфраструктуры любой сложности

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.