29 мая 2009 г.

Резервируем данные в unison

Просто решение резервирования документов (данных) с возможностью сохранения предыдущих версий - unison.

Ставим unison, пакет есть во всех дистрибьютивах. Возможно резервирование локальных папок, по ssh и по сокету через unison.

Просто пример синхронизации двух папок, при этом одна может быть монтированным сетевым ресурсом.

Создаём профиль new.prf в папке ~/.unison/ следующего к примеру содержания:

root = /home/user/Documents
root = /media/sync/Documents

include common
(не рекомендую оставлять пробелы в начале строк с параметрами).

Как видно, в профиле указано, что также используются общие параметры из файла common в той же папке примерно следующего содержания:

# все настройки писать в этом файле
addprefsto = common

# имена и пути для игнорирования:
ignore = Name temp.*
ignore = Name *~
ignore = Name .*~
# ignore = Path */pilot/backup/Archive_*
# ignore = Name *.o
ignore = Name *.tmp
ignore = Name .~lock.*

# обрабатывать без вопросов автоматически
batch = true
# сохраняем версии тут же

backuplocation = local
# обрабатывать все файл

backup = Name *
# дописывать для доп. версий префикс

backupprefix = $VERSION.# не дописывать суффикс
backupsuffix =
# максимальное число версий одного файла

maxbackups = 1000
# писать лог в стандартный путь
log = true
# устанавливать время модификации
times = true
# быстрая проверка по времени модификации и размеру
# содержание при этом не проверяется
fastcheck = true

Далее запускаем программу для обработки созданого профиля:

unison new

логи смотрим в файле ~/unison.log, можно задачу поставить на периодическое исполнение командой crontab -e, указав к примеру запускать задачу 1 раз в час: * */1 * * * unison new