Это старая версия документа.


Данная программа позволяет средствами rsync делать резервное копирование сразу же по появлению нового файла в указанной директории (а-ля Dropbox)

Односторонняя синхронизация в реальном времени с помощью Lsyncd (http://lsyncd.googlecode.com)

Lsyncd просматривает дерево локальных директорий с помощью интерфейса модуля мониторинга inotify. Он агрегирует и комбинирует события за несколько секунд и затем запускает процесс (или несколько процессов) синхронизации изменений. По умолчанию для этих целей используется rsync. Таким образом, lsyncd - легковесное решение для зеркалирования данных, сравнительно легкое в установке, не требующее специфичных файловых систем или блочных устройств, а также не влияющее на производительность файловой системы. Ниже я синхронизирую данные с моего клиентского компьютера под управлением Mint 12/Ubuntu на NAS сервер (Synology DS211J).

Установка

Установка зависимостей:

apt-get install rsync libxml2-dev build-essential lua5.1 liblua5.1-dev

Установка lsync

 wget https://lsyncd.googlecode.com/files/lsyncd-2.1.5.tar.gz
tar xvf lsyncd-2.1.5.tar.gz
cd lsyncd-2.1.5
./configure
make
sudo checkinstall

Настройка

Содержимое ~/.lsyncd/lsyncd.config

settings = {
   logfile  	= "/home/mint/.lsyncd/lsyncd.log",
   statusFile   = "/home/mint/.lsyncd/lsyncd.status",
   nodaemon 	= false,
   maxDelays	= 900,
   maxProcesses = 6,
}

sync {
    default.rsyncssh,
    source      = "/media/sdc1/DataFiles",
    host        = "root@192.168.5.149",
    targetdir   = "/volume1/lsyncd",
    rsyncOpts   = "-a"}

Сохраните файл

4. Перед запуском тестов синхронизации убедитесь, что хост, описанный в lsyncd.config, доступен по ssh без пароля (по ключам). Если нет, выполните следующие шаги:

На клиенте: $> ssh-keygen -N '' -f ~/.ssh/id_dsa На все вопросы отвечать по умолчанию, нажатием ENTER, затем then the following (Примечание: 192.168.5.149 - IP-адрес удаленного сервера) $> cat ~/.ssh/id_rsa.pub | ssh 192.168.5.149 'cat - » ~/.ssh/authorized_keys2' $> ssh 192.168.5.149 'chmod 700 .ssh' Проверьте соединение с удаленным сервером, вы должны залогиниться на 192.168.5.149 $> ssh 192.168.5.149

5. В случае успешного тестирования создайте папку с предпочитаемым именем (для своего NAS я назвал папку “lsyncd”, она должна иметь путь /home/username/lsyncd (или server.mydomain.local:~/lsyncd если синхронизация идет через интернет)

6. Настройка завереша, время тестировать lsyncd с клиента. $> lsyncd -nodaemon ~/.lsycnd/lsycnd.config

7. Измените содержимое локальной директории и следите за изменениями на удаленном сервере.

8. Добавьте строку автозапуска программы в StartUp Applications:

   lsyncd ~/.lsycnd/lsycnd.config

9. Готово.

Файлы, обновленные на вашем компьютере будут односторонне синхронизированы с NAS. Мне кажется, это лучше двухсторонней синхронизации, потому что я имею плохой опыт работы с DropBox, когда в результате глюка я почти потерял все данные (своевременное отключение от сети компьютера позволило сохранить информацию).

Кстати, убедитесь, что nautilus установлен в системе. Он содержит пакеты, необходимые для функционирования вышеописанного.

Ссылки