Установка и использование Duplicity

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

Команда установки в Ubuntu:

apt update
apt install duplicity
duplicity -V

Также установим необходимые компоненты (например python-paramiko необходим для подключений по scp, ncftp — для подключений по ftp):

apt install python-paramiko ncftp

Приведу пример резервного копирования в файл на локальном сервере и восстановления в другую директорию:

duplicity --no-encryption /home/test file:/home/backup_test
duplicity restore --no-encryption file:/home/backup_test /home/restore

Можно проверить целостность резервной копии после ее создания:

duplicity verify --no-encryption file:/home/backup_test /home/test

При первом запуске duplicity выполняет полную резервную копию, а при следующих запусках инкрементную, чтобы принудительно выполнить полную резервную копию:

duplicity full --no-encryption /home/test file:/home/backup_test

Резервное копирование на другой сервер по SCP(SSH):

duplicity --no-encryption /home/test scp://test@ixnfo.com//home/test/backups

Подключение к SSH с использованием ключей

Можно исключать из резервного копирования директории:

duplicity full --no-encryption --exclude /home/test/dir1 -exclude /home/test/dir2 /home/test scp://test@ixnfo.com//home/test/backups

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

duplicity restore --no-encryption scp://test@ixnfo.com//home/test/backups /home/test_restore

Либо в существующую но указав —force:

duplicity restore --force --no-encryption scp://test@ixnfo.com//home/test/backups /home/test

Можно проверить посчитав количество файлов:

find  /home/test_restore/ -type f  | wc -l
find /home/test/ -type f  | wc -l

Нужно осторожно использовать опцию —force, так как при неверном указании пути, могут стереться важные директории.

Пример восстановления только одного файла из резервной копии (указание имени файла в пути для сохранения обязательно! если вы просто укажете что нужно восстановить файл в директорию /home/test, то эта директория будет удалена и вместо нее будет файл с именем test):

duplicity restore --no-encryption --file-to-restore ixnfo.sh scp://test@ixnfo.com//home/test/backups /home/test/ixnfo.sh

Восстановление файла 5 дней назад (и сверим различия, если это текстовый файл):

mkdir /duplicity/
duplicity restore -t 5D --no-encryption --file-to-restore ixnfo.sh scp://test@ixnfo.com//home/test/backups /duplicity/ixnfo.sh
diff /home/test/backups/ixnfo.sh /duplicity/ixnfo.sh

Также можно указать s — секунды, m — минуты, h — часы, D — дни, W — недели, M — месяцы, Y — годы.

Резервное копирование в директорию на FTP сервере:

FTP_PASSWORD=password duplicity /home/test ftp://test@ixnfo.com/backup

Пример создания резервной копии директории /etc/ на удаленный сервер через sftp:

duplicity /etc/ sftp://test@ixnfo.com//backups

Если необходимо шифровать/дешифровать данные, то генерируем GPG ключи:

gpg --gen-key

Посмотрим публичный ключ и используем его:

gpg --list-keys
duplicity --encrypt-key="01A323FB259A9C482C41B1532A5F7D757D16180F" /home/test scp://test@ixnfo.com//home/test/backups

Пример просмотра информации о резервных копиях:

duplicity collection-status file:/home/backup_test

Просмотр списка файлов в резервной копии:

duplicity list-current-files file:/home/backup_test

Принудительное удаление резервных копий старше 30 дней:

duplicity remove-older-than 30D --force file:/home/backup_test

Смотрите также мои статьи:
Установка и настройка fsbackup
Установка и использование rsync в Linux
Другие мои статьи на тему Резервное копирование

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

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

Больше на IT Blog

Оформите подписку, чтобы продолжить чтение и получить доступ к полному архиву.

Continue reading