База знаний
Duplicity. Linux. Резервное копирование на FTP-сервер
Автор: Daniil Nareyko

Описание.

Приложение Duplicity позволяет настроить автоматическое создание инкрементальных резервных копий.


 

Исходные данные.

FTP-сервер: rc-ftp-01.activeby.net

Имя пользователя: user

Пароль пользователя: password

Каталог, для которого создаём резервную копию: /home/bitrix/www


 

Установка Duplicity

Для систем семейства RedHat:

yum install duplicity

Для систем семейства Debian:

apt-get install duplicity 


 

Создание резервной копии.

Будет рассматриваться создание резервной копии без шифрования. Для начала необходимо инициализировать служебные переменные:

export FTP_PASSWORD=password

В переменной FTP_PASSWORD сохраняется пароль FTP-пользователя. В нашей слочае - это password.

Далее необходимо запустить приложение duplicity с нужными ключами:

duplicity --no-encryption --full-if-older-than 2D --exclude /home/bitrix/www/bitrix/backup --exclude /home/bitrix/www/bitrix/cache --exclude /home/bitrix/www/bitrix/managed_cache /home/bitrix/www ftp://user@rc-ftp-01.activeby.net/www

где,

--no-encryption - отменяет шифрование;

--full-if-older-than 2D - создавать полную резервную копию каждые два дня (необходимо для системной очистки);

--exclude - исключает каталог или файл из резервной копии;

/home/bitrix/www - каталог, для которого создаём резервную копию;

ftp:// - протокол передачи данных;

user - имя FTP-пользователя;

rc-ftp-01.activeby.net - FTP-сервер;

/www - каталог в домашней директории пользователя на FTP-сервере для хранения резервных копий.

В конце выполняем очистку служебных переменных:

unset FTP_PASSWORD

 

Удаление резервных копий.

duplicity remove-older-than 4D --force ftp://user@rc-ftp-01.activeby.net/www

где,

remove-older-than - команда на удаление резервных копий;

4D - период; в данном примере удаляются копии старше 4 дней;

--force - удалять без подтверждения;

ftp://user@rc-ftp-01.activeby.net/www - место хранение резервных копий

Удаление будет срабатывать только в случае, когда на границе заданного периода будет полная копия. В противном случае получим предупреждение:

Which can't be deleted because newer sets depend on them.

No old backup sets found, nothing deleted.

"Не может быть удален, потому что новые элементы зависят от него. Старые резервные копии не найдены, ничего не удалено"

 


 

Автоматическое создание резервной копии с уведомлением по почте.

Для реализации потребуется установить почтовый клиент Mutt, написать небольшой скрипт и настроить расписание его выполнение в планировщике Cron.

Установка Mutt.

Для систем семейства RedHat:

yum install mutt

Для систем семейства Debian:

apt-get install mutt

 

Написание скрипта

Вначале создадим файл:

touch /root/create-backup.sh

Затем откроем его любым редактором, например, nano:

nano /root/create-backup.sh

Запишем программный код:

#!/bin/sh
LOG=/var/log/backup-$(date +%Y%m%d).log    # файл лога
export FTP_PASSWORD=password
 

duplicity --no-encryption --full-if-older-than 2D --exclude /home/bitrix/www/bitrix/backup --exclude /home/bitrix/www/bitrix/cache --exclude /home/bitrix/www/bitrix/managed_cache /home/bitrix/www ftp://user@rc-ftp-01.activeby.net/www >> $LOG
echo -e "\n===========\n" >> $LOG   # Разделитель для удобства чтения
duplicity remove-older-than 4D --force ftp://user@rc-ftp-01.activeby.net/www >> $LOG # Удаляем старые копии
 
unset FTP_PASSWORD
MAIL='user@domain.com'  # Ящик, на который необходимо отправлять уведомление
STAT=`duplicity collection-status ftp://user@rc-ftp-01.activeby.net/www`  # Статистика по имеющимся резервным копиям
# Далее формируем письмо, в теле которого будет статистика по имеющимся резервным копия,
# а вложением будет лог их удаления и создания
echo -e "Backup completed. The result is attached to the letter. \n Current status: \n $STAT" | mutt $MAIL -a $LOG -s "Backup site - $(date +%Y%m%d)"
exit 0

 

Настройка расписания выполнения.

Открывает расписание текущего пользователя для редактирования:

crontab -e

Добавляем строку:

0 2 * * * /bin/bash /root/create-backup.sh

где,

0 - минуты;

2 - часы;

/root/create-backup.sh - путь к созданному скрипту .

После сохранения проверим, чтобы изменения в расписание записались:

crontab -l

 

Восстановление из резервной копии.

Для начала инициализируем служебные переменные:

export FTP_PASSWORD=password

В переменной FTP_PASSWORD сохраняется пароль FTP-пользователя. В нашей слочае - это password.

Далее необходимо запустить приложение duplicity с нужными ключами:

duplicity restore --no-encryption -t4D ftp://user@rc-ftp-01.activeby.net/www /home/bitrix/www

где,

restore - команда на восстановление;

--no-encryption - не использовать шифрование;

-t - аргумент для указания даты резервной копии;

4D - значение аргумента -t , означающее, что необходимо восстановть копию четырёх-дневной давности;

ftp://user@rc-ftp-01.activeby.net/www - откуда необходимо восстановить;

/home/bitrix/www - куда необходимо восстановить (с заменой существующих данных).

 



Если решение вопроса найти не удалось, Вы можете отправить нам заявку:



(3 голос(а))
Эта статья помогла
Эта статья не помогла

ActiveCloud Служба поддержки клиентов
Здравствуйте! Если вам нужен хостинг или домен — вы можете купить его у нас.
Выбрать тариф