Данная программа позволяет средствами 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 установлен в системе. Он содержит пакеты, необходимые для функционирования вышеописанного.