У меня было такое же требование, и я обнаружил, что большинство доступных опций либо не работают, либо требуют большой настройки.
Лучшим вариантом, который я нашел, было Guano, маленькое Java-приложение, которое рекурсивно посещает каждый узел в дереве, начиная с объявленного узла, и выгружает его в соответствующую структуру каталогов, так что вы получаете структуру каталогов простых файлов, которые структурирован как фактическое дерево.
Вы также можете восстановить эти резервные копии, попросив их восстановить рекурсивно из любой точки этого дерева. Я думаю, что это довольно хорошо как для резервного копирования, так и для исследования. Например, я сразу использовал ack из корня, чтобы найти все файлы с записью, которая меня волновала.
Это легко превратить в правильную резервную копию, просто поместив ее как задание cron и добавив шаг zip, чтобы сжать всю резервную копию в архив, а также обработать любую необходимую ротацию.
У инструмента есть несколько недостатков:
- На Github оригинал не компилируется из-за отсутствия нескольких импортов. Несколько человек сделали PR или вилки, которые решают эту проблему, такие как https://github.com/feldoh/guano, который является моей вилкой, в которой я также улучшил документы. Я также сейчас предварительно скомпилировал банку и буду вставлять двоичные файлы в https://bintray.com/feldoh/Guano/guano.
- Он сбрасывает только данные, что хорошо для исследования, но теряет метаданные, такие как mTime или версия данных. По общему признанию, восстановление, вероятно, должно считаться обновлением, поэтому я не могу сказать, что это действительно плохо, но это не настоящее восстановление на момент времени.
NB. Я создал свой собственный редактор Zookeeper, поскольку у меня были похожие проблемы с поиском одного из них, который работал и отвечал моим потребностям. В зависимости от того, когда вы читаете это https://github.com/feldoh/JZookeeperEdit может также иметь функцию экспорта. Проблемы 13/14 охватывают эту запланированную функцию.