Я пытаюсь настроить резервную систему для сервера, которая мне удается улучшить по сравнению со старой системой. Я выбираюzpaqпотому что он обеспечивал хорошее сжатие при использовании старой системы lrzip -z
и потому что на связанной странице утверждается, что он предлагает инкрементное сжатие, при котором в каждом новом экземпляре резервной копии резервируются только измененные данные.
В настоящее время я использую следующий скрипт для создания резервной копии (все данные хранятся в каталоге server
):
cd server
zpaq pa ../backup.zpaq *
Этот скрипт создает архив, включающий все файлы, которые находятся непосредственно под каталогом сервера, но не сканирует рекурсивно всю систему каталогов. Как заставить его сканировать всю систему каталогов? Когда я удаляю опцию a
или делаю резервную копию server
каталога из его родителя, проблема все еще возникает.
Theстраница руководствачто, кажется, написано автором инструментов, говорит:
Если имя является каталогом, то оно рекурсивно включает все файлы и подкаталоги внутри него.
Ubuntu'sстраница руководстване упоминает рекурсию. Я установил инструмент из репозитория Ubuntu с помощью apt-get install zpaq
. Если zpaq Ubuntu чем-то отличается от того, на который я ссылался в начале этого вопроса, пожалуйста, объясните, где можно найти пакет Ubuntu для связанного zpaq.
решение1
Похоже, вам нужно решение, которое будет zpaq
работать так, как вы ожидаете. Но если вы используете bash
, этот обходной путь должен дать вам желаемый результат. Введите shopt -s globstar
. Затем выполните команду, которую вы использовали, с одним небольшим изменением:
zpaq pa ../backup.zpaq **
При globstar
включенном режиме
**
расширяется до списка записей в текущем каталоге.дерево; т.е. текущий каталог и ниже. Как и *
, он будет игнорировать.
(скрытые) файлы. Если вы хотите включить их, сделайте shopt -s dotglob
это. (Вы можете объединить их в одну команду: shopt -s globstar dotglob
.)
Удобнее всего это сделать в скрипте. Но если вы делаете это в своей основной (интерактивной) оболочке, вам может понадобиться отменить настройки shopt
. Это можно сделать с помощью shopt -u globstar dotglob
.
Примечание: если у вас слишком много файлов, это может привести к сбою, поскольку существует ограничение на длину командной строки, а она довольно велика.
решение2
У меня была та же проблема на Ubuntu 14.04.3. Решение — не использовать пакет из репозитория, а установить последний исходник изhttp://mattmahoney.net/dc/zpaq.html
После загрузки пакет находится в формате .zip и его нужно будет распаковать с помощью unzip. Оттуда просто сделайте следующее:
make
sudo make install
Сейчас делаю
zpaq a *archive* */dir*
будет включать каталог и все его подкаталоги и файлы.