Автоматическое управление версиями файловой системы на сервере (Linux)

Итак, в основном, я ищу программное обеспечение linux для мониторинга папки (и ее подпапок) на предмет любых изменений и применения какой-либо формы управления версиями (то есть сохранения "базы данных" или чего-то еще, откуда я могу восстановить файлы).

Причина, по которой это невозможно сделать с помощью традиционных SCM (GIT, SVN, HG и т. Д.), Двояка:

  • мониторинг и управление версиями должны быть автоматическими (единственными критериями заказа являются время)
  • программное обеспечение, в котором я нуждаюсь, должно делать определенную вещь, в отличие от SCM, где они делают намного больше (и, конечно, разумно более подвержены ошибкам)

Сервер, на котором он будет работать, - это неуправляемый VPS, следовательно, обладающий значительным контролем - но я боюсь, что этого недостаточно для установки раздела с файловой системой управления версиями.

Находясь в этом, знайте, что я уже проверял обратную дорогу, но я не впечатлен и колеблюсь, чтобы использовать программное обеспечение, последнее обновление 7 лет назад (2004).

Извините, что передал головную боль другим коллегам-нарушителям, но я ничего не могу поделать;)

Изменить: Кстати, хотя я бы предпочел, чтобы это было на основе CLI, любые альтернативы также приветствуются!

Редактировать 2: Не для того, чтобы разбивать linux или что-то еще, но с концепцией сигналов linux(unix), это не должно быть слишком сложно для написания (конечно, специальной командой).

На самом деле, я использую систему, которая уже делает это ( Dropbox), но у нее другое назначение, и поэтому управление версиями ограничено 30 днями (а управление версиями хранится в онлайн-хранилище). Но это показывает, что концепция вполне возможна.

3 ответа

Решение

Если вы не хотите использовать rsync, как предложил Zoredache, мое следующее предложение - написать скрипт, который использует inotify для отслеживания изменений. Это не будет очень сложно.

Затем, будет ли ваш сценарий автоматически фиксировать измененный файл в традиционной системе управления версиями (например, svn, git и т. Д.) Или просто сохраняет последние версии X файла, где вам решать.

Действительно ли у него есть версия при изменении на уровне файла, или вы принимаете периодические снимки?

Если вы готовы принимать периодические снимки, вы можете просто использовать что-то вроде dirvish или rsync напрямую. По сути, вы создаете полную копию своей файловой системы, а затем любые последующие копии будут жестко связывать идентичные файлы, а новые / измененные файлы будут отдельными.

Dirvish в основном является интерфейсом для rsync и использует опцию --link-dest.

Как пользователи получают доступ к файловой системе? Доступ через webdav является опцией? Вы можете настроить SVN с помощью Apache и использовать автоверсию.

Я знаю один способ сделать это. Это проприетарная файловая система и поставляется с кучей других вещей, что, в свою очередь, делает ее очень дорогой, но она делает большую часть того, что вы ищете. Он называется NSS и поставляется с Novell Open Enterprise Server 2. В отличие от Wayback, он все еще поддерживается. Он сохраняет то, что он называет "спасительным" деревом, которое будет хранить столько же "удаленных" данных, сколько свободного места на томе минус 20% (это можно настроить).

Единственное предостережение в том, что он не отслеживает изменения конкретных файлов, а только файлы, которые удалены и воссозданы с новой информацией. Итак, файлы Excel будут отслеживаться, а базы данных Access - нет.

NSS Salvage будет отслеживать только определенный период времени, который зависит от того, сколько свободного места осталось на томе. Соедините это с автоматизированной системой извлечения файлов из Salvage в более традиционную систему контроля версий, и вы получите довольно мощное решение. Это значит иметь дело с Novell.

Другие вопросы по тегам