Копии через сеть

Во всех предыдущих примерах мы копировали данные в локальный каталог, но Duplicity может делать это и по сети. Чтобы воспользоваться SSH, запустите команду: duplicity sshbackend=pexpectsshoptions= ”oIdentityFile=~/.ssh/id_ecdsa.pub” /src/dir ssh://user@hostname//dest/dir
С клиентом SSH по умолчанию у меня были проблемы, и параметр pexpect решил их; вы можете попробовать запустить его с этим параметром и без и посмотреть, какой вариант работает лучше. Параметр IdentyFile - это публичный ключ SSH, который также нужно скопировать в файл authorized_keys на удаленном компьютере, если вы не хотите каждый раз вводить пароль от SSH. Слэш после имени хоста отделяет его от следующего за ним пути, который является относительным по отношению к домашнему каталогу пользователя на удаленном компьютере, так что для абсолютного пути нужно указать еще один слэш.
Для подключений по SSH Duplicity использует SFTP, поэтому убедитесь, что в вашем сервере SSH он включен (обычно это так), в противном случае придется включать scp параметром usescp, что чуть менее эффективно. Duplicity также может работать с Amazon S3, Google Docs and FTP и другими сервисами. Подробности см. на man странице.
Восстановление и чистка
Мы рассмотрели различные параметры для создания резервных копий. Если все хорошо, то оно и достаточно, но если что-то пойдет не так, нужно знать, как восстановить данные. Для восстановления из резервной копии достаточно поменять местами аргументы источника и места назначения - если первый аргумент начинается с обозначения URL: file://, ssh:// и т. д., то Duplicity поймет, что вы хотите восстановить данные. Для восстановления конкретного файла или каталога скомандуйте duplicity filetorestore path/to/file backup_url restore_dir Если хотите восстановить более старую версию файла, воспользуйтесь параметром time - например, для восстановления файла в версию четырехдневной давности подойдет команда duplicity time 4D filetorestore path/to/file backup_url restore_dir
Когда-нибудь у вас израсходуется место (или за него придется платить слишком много), и вы захотите удалить старые резервные копии. Команда duplicity removeolderthan 3M force backup_url удалит резервные копии давности более трех месяцев, а без параметра force просто выведет их список. Она не удалит резервные копии независимо от их «возраста», если от них зависят более новые версии. Если последняя полная копия делалась полгода назад, Duplicity удалит только копии старше этой, так как инкрементальные копии без родительской полной копии бесполезны.
Duplicity проста в использовании, но у нее есть несколько параметров, которые не хочется вводить каждый раз, поэтому стоит создать короткий скрипт для вызова Duplicity с необходимыми параметрами.