Вопросы и ответы - Макхост

Автоматизация создания резервных копий сайта на хостинге

Используется услуга дисковое пространство для Backup. Каким образом можно автоматизировать создание бэкапов?

17.11.2015   13:53
Сотрудник Озорович Михаил
 нет комментариев
ОТВЕТЫ НА ВОПРОС (1)
Сотрудник Озорович Михаил

1. Нужно создать ssh ключи:
перейти в папку private/ и создать там подпапку backup/ (private/backup/). Это можно сделать с помощью таких команд:

cd private/ && mkdir backup/ && cd backup/
ssh-keygen -t rsa -f id-rsa


будут созданы два файла:
id-rsa - приватный ключ
id-rsa.pub - публичный ключ

С помощью FTP клиента через SFTP соединение (порт 22) на backup сервере создать папку .ssh/
Загрузить в папку .ssh/ публичный ключ id-rsa.pub и переименовать его в .ssh/authorized_keys и поставить на файл права доступа 600.
 

2. Скачать на сервер в папку private/backup скрипты для создания резервных копий:
backup-files.sh
backup-mysql.sh

Отредактировать файлы, в начале файлов указать данные в переменные:
B_USER - пользователь для подключения в backup аккаунт
B_HOST - хост подключения на backup сервер
DOMAIN - домен текущего сайта

Установить на файлы права для запуска 700:

chmod 700 backup-files.sh backup-mysql.sh


3. Прописать нужный период выполнения бэкапа файлов или базы данных в панели управления в Планировщике заданий (cron).
Создавать архив файлов сайта один раз у неделю, например, в понедельник в 3 часа ночи (рекомендуем выполнять бэкапы в ночное время):
0 3 * * 1 /путь_к_скрипту_на_сервере/backup-files.sh > /dev/null 2>&1

И так же для mysql базы данных:
0 3 * * 1 cd /путь_к_скрипту_на_сервере && /путь_к_скрипту_на_сервере/backup-mysql.sh HOST DB_USER DATABASE PASSWORD > /dev/null 2>&1

где:
HOST - хост подключения к mysql серверу
DB_USER - пользователь базы данных
DATABASE - имя базы данных
PASSWORD - пароль пользвоателя для доступа к базе данных
 

4. Для скрипта backup-files.sh можно указать как аргумент протокол передачи архива на backup сервер:
backup-files.sh rsync
- производится копирование на backup сервер в папку httpdocs всех обновленных файлов по протоколу rsync без архивирования.
При каждом последующем выполнении команды с ключем rsync, на backup сервер обновляются только новые и измененные файлы, а не все файлы сайта.
backup-files.sh sftp
- производится копирование на backup сервер архива папки httpdocs в формате .tar.gz
backup-files.sh (без ключей)
- производится копирование на backup сервер архива папки httpdocs в формате .tar.gz по протоколу scp

17.11.2015   13:57
 Комментировать

Для ответа нужно зарегистрироваться или авторизоваться.