Duplicati 2 - это система резервного копирования с открытым исходным кодом. Есть версии под Window, Linux и MacOS. Умеет архивировать по расписанию, умеет восстанавливать данные из архива в исходное или произвольное расположение, умеет работать с теневыми копиями (VSS). Сплошные бонусы и радости по описанию, но всё немного не так в реальности. По крайней мере у меня не всё гладко прошло.
После установки с помощью MSI-пакета программа запустилась, в системном лотке рядом с часами появился значок, в браузере открылся web-интерфейс для настройки программы и создания заданий. Для простого архивирования документов хватит за глаза, но есть в таком режиме кое-какие ограничения.
Во-первых, при запуске от имени пользователя не работает теневое копирование, т.е. открытые и заблокированные файлы при выполнении резервного копирования будут пропущены.
Во-вторых, настройки самой программы и задания лежат в недрах пользовательского каталога "AppData", и их таким образом можно потерять.
Решение проблем я нашёл за вечер.
Сначала я удалил программу совсем. Перед этим необходимо экспортировать настройки заданий в JSON-файлы, но у меня задания настроены ещё не были, а тестовые задания ценности не представляли. Потом я скачал со страницы релизов последнюю доступную версию в виде zip-архива с бинарниками для Windows ("duplicati-2.0.4.23_beta_2019-07-14.zip" на момент написания статьи). Распаковал архив в нужный мне каталог и приступил к настройке.
Сначала я запустил командную строку от имени администратора и перешёл в каталог с файлами программы. Из него я установил службу такой командой:
Duplicati.WindowsService.exe install
Но в таком варианте настройки хранятся уже внутри каталога "\Windows\System32\config\systemprofile\AppData", что тоже не очень хорошо. Поэтому я удалил службу и переустановил её с параметром "--portable-mode":
Duplicati.WindowsService.exe uninstall Duplicati.WindowsService.exe install --portable-mode
В таком режиме настройки хранятся в каталоге "data" вместе с программой.
Теперь расскажу об использовании механизма теневых копий.
Он включается с помощью добавления параметра "snapshot-policy" и выставления его в положение "on" в разделе "Параметры по умолчанию" настроек программы или в разделе "Расширенные параметры" на 5-м шаге мастера добавления задания.
Ещё в этой программе мне понравилась настройка хранения резервных копий, которая задаётся в виде "Период:Количество". Например, "7D:1D,4W:1W" расшифровывается как "В течении 7 дней (7D) хранить по одной копии за каждый день (1D), в течение 4 недель (4W), хранить одну копию за каждую неделю (1W), белее старые копии удалять". Можно довольно гибко настроить хранение и удаление.
А не понравилось мне в программе то, что нельзя просто открыть архив и извлечь нужный файл, потому что данные там хранятся в своём хитром формате. При открытии архива обычным архиватором видны файлы с именами вида "_KGCmOF5iOWsglfcz31luskPsj7NooyjiyXD8sXQDO8="