Архивирование данных с помощью Duplicity
Материал из База знаний проекта Russian Fedora
Содержание |
Что такое Duplicity
Duplicity сохранит вашу директорию в шифрованный том формата tar и загрузит его на локальный или удаленный файловый сервер. Так как duplicity использует библиотеку librsync то последующие архивы будут записывать только изменения с последнего резервного копирования и позволяет более эффективно использовать дисковое пространство и трафик. Также duplicity использует GnuPG для шифрования и / или подписи этих архивов, что защищает их от похищения и / или модификации.
Для соединения с файловым сервером Duplicity подерживает множество протоколов : ssh/scp, локальные файлы, rsync, ftp, HSI, WebDAV, Tahoe-LAFS, и Amazon S3.
Сейчас duplicity поддерживает : удаленные файлы, все разрешения UNIX, каталоги и символические ссылки ( кроме жестких ссылок ), fifos и файлы устройств.
Установка Duplicity
Если duplicity у вас не установлен вы можете установить его командой :
su -c 'yum install duplicity -y'
Примеры использования
Архивирование
Пример резервного копирования с использованием scp директории /home/me в директорию some_dir на компьютер other.host:
duplicity /home/me scp://uid@other.host/some_dir
Если создаете архив первый раз то это будет полная копия и при последующих запусках будут архивироваться только изменения. Чтобы снова создать полную копию используйте специальную команду full:
duplicity full /home/me scp://uid@other.host/some_dir
Duplicity может использовать несколько вариантов включить / исключить ( include / exclude ). Следующий пример создаст архив каталога root, но исключит из него каталоги /mnt, /tmp и /proc :
duplicity --exclude /mnt --exclude /tmp --exclude /proc / file:///usr/local/backup
Пример создания архива в локальном каталоге /usr/local/backup. Будут архивироваться только директории /home и /etc:
duplicity --include /home --include /etc --exclude '**' / file:///usr/local/backup
Просмотр статистики и проверка
Просмотр статистики архива:
duplicity collection-status scp://uid@other.host/some_dir
Следующая команда сравнивает файлы с резервной копией, чтобы можно было видеть все произошедшии изменения, опция -v4 дает более детализированный вывод:
duplicity verify -v4 scp://uid@other.host/some_dir /home/me
Просмотр списка файлов в последней резервной копии:
duplicity list-current-files ftp://ftpuser@other.host/some_dir
Востановление файлов
Теперь если случайно удалили /home/me и хотите востановить эту директорию на момент последнего архивирования то выполните:
duplicity scp://uid@other.host/some_dir /home/me
Если хотите востановить только один файл ( или одну директорию ) Mail/article из директории /home/me, каким он был три дня назад то выполните :
duplicity -t 3D --file-to-restore Mail/article scp://uid@other.host/some_dir /home/me/article.t3D
Удаление старых архивов
Удаление резервных копии старше одного года:
duplicity remove-older-than 1Y --force ftp://ftpuser@other.host/some_dir
Пример автоматического сценария
Для архивации на ftp сервер, вы можете явно указать имя пользователя ftp а пароль для него можно указать в переменной среды FTP_PASSWORD, если же вы хотите создать полностью автоматический сценарий и поместить его в crontab то используйте дополнительно переменную среды PASSPHRASE.
Создайте в каталоге /etc/cron.d файл (например) duplicity, в котором укажите что скрипт архивации будет выполнятся раз в 24 часа, vi /etc/cron.d/duplicity
0 0 * * * /root/scripts/backup_etc.sh >>/var/log/duplicity/etc.log
Далее создайте сам файл архивации vi /root/scripts/backup_etc.sh
#!/bin/sh export FTP_PASSWORD=ftppassword export PASSPHRASE=gpgpassphrase duplicity --full-if-older-than 1M /etc ftp://ftpuser@other.host/etc duplicity remove-older-than 6M --force ftp://ftpuser@other.host/etc unset PASSPHRASE unset FTP_PASSWORD exit 0
где:
- --full-if-older-than 1M - сделать полное архивирование, если со дня последнего полного архивирования прошел 1 месяц;
- remove-older-than 6M --force - удалить резервные копии старше, чем 6 месяцев.
Установить соответствующего владельца и права на этот файл :
chown root: /root/scripts/backup_etc.sh chmod 700 /root/scripts/backup_etc.sh
Использования графической оболочки для duplicity
Для duplicity существует графическая оболочка Déjà Dup. Эта оболочка интегрирована в Gnome Desktop,и в ней можно задать резервное копирование по расписанию.
Если у вас она не установлена то вы можете установить ее командой :
su -c 'yum install dejadup'
Полезные приемы
Перенос исходного каталога
Если перенесете каталог для архивирования, то обычным споcoбом не удастся продолжения архивирова, duplicity будет выходить с ошибкой : Backup source directory has changed. ( исходная директория была изменена ). Чтобы не создавать новый архив заново и продолжить существующий нужно в строке задания добавить ключ : --allow-source-mismatch
Выборочное востановление из Nautilus
Если Вы используйте Gnome, то в файловом менеджере Nautilus можно нажать на файле/папке правой клавишей мыши и выбрать в меню пункт : Восстановить из предыдущей версии ... и запустится программа Deja-Dup где сможете выбрать дату востановления.
