Изменения

Файловая репликация

851 байт убрано, 12:29, 30 апреля 2013
м
Нет описания правки
<big>Статья описывает '''проект''' будущей разработки Evsync== [http://iwatch.<sourceforge.net/big>index.html iwatch] ==
'''Evsync''' — простой инструмент для «непрерывной» rsync-образной синхронизации файлов. В некотором смысле, лишённый недостатков [Правильная утилита — это iwatch (http://codeiwatch.googlesourceforge.comnet/p/lsyncd/ lsyncd] или [http://bbindex.xnull.de/projects/inosync/ inosync], написанный, к тому же, на Perl’еhtml).
== Недостатки [http://bb.xnull.de/projects/inosync и lsyncd / inosync] ==
Недостатки '''inosync''':
* Не умеет следить за несколькими каталогами сразу.
* Не поддерживаются фильтры rsync’а, что приводит к лишним его вызовам.
* Написан на Python, дописывать неохота. А учитывая исключительную простоту (меньше 200 строк кода), и дописывать-то особенно нечего.
== Недостатки '''lsyncd'''[http://code.google.com/p/lsyncd/ lsyncd] == 
* Существуют лимиты на корректность имён файлов.
* Существует лимит на количество наблюдаемых файлов (открывается только 1 дескриптор inotify).
* Написан на C, дописывать неохота.
== Архитектура Evsync Как делать правильно ==
Evsync (пока что всё в будущем времени):* Реализован на Perl’е, с помощью модуля {{CPAN|File::Rdiff}}.* Не запускает rsync (no forks!), а сам вычисляет rdiff’ы файлов.* Имеет опцию сохранения нескольких rdiff’ов каждого файла за последнее заданное число дней и m из них — за последний день — в отдельном каталоге, в целях резервного копирования.* Обязательно дожидается дожидаться события IN_CLOSE_WRITE, чтобы не синхронизировать файл в середине записи в него.* Имеет опцию задержки обработки Можно группировать изменения файла файлов с целью группировки нескольких изменений в одноповышения производительности.* Обрабатывает Обрабатывать ошибки синхронизации.* Обрабатывать времена модификации файлов и способен , проносить изменения в обе стороны.
=== События Inotify ===
<tab sep=tab class=simpletable head=left>
</tab>
=== Корректные реакции на события ===
<tab sep=tab class=simpletable head=left>
См. также:
* http://linux.die.net/man/2/inotify - man 2 inotify.* http://code.google.com/p/lsyncd/ - домашняя страница lsyncd.* http://bb.xnull.de/projects/inosync/ - домашняя страница inosync.* http://wiki.opennet.ru/Incrontab - демон, запускающий программы в качестве реакций на события inotify.* http://librsync.sourcefrog.net/ - librsync.
* {{CPAN|File::Rdiff}} — Perl-интерфейс к функциям вычисления разниц librsync.
* http://rdiff-backup.nongnu.org/ - утилита для резервного копирования файлов, хранящая rdiff’ы файлов для отката изменений к предыдущим датам.
[[Категория:Разработка]]