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

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

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

Установка

sudo apt-get install rsync lsyncd

Или установка из исходных текстов:

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

sudo apt-get install rsync libxml2-dev build-essential lua5.1 liblua5.1-dev checkinstall
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",
    rsync={
        _extra = { "-a" }
        }
    }
}

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

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

На клиенте:

ssh-keygen -N '' -f  ~/.ssh/id_rsa

На все вопросы отвечать по умолчанию, нажатием ENTER, затем (Примечание: 192.168.5.149 - IP-адрес удаленного сервера)

cat ~/.ssh/id_rsa.pub | ssh 192.168.5.149 'cat - >> ~/.ssh/authorized_keys'
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 ~/.lsyncd/lsyncd.config

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

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

   lsyncd ~/.lsyncd/lsyncd.config

9. Готово.

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

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

Ссылки