Показаны сообщения с ярлыком cygwin. Показать все сообщения
Показаны сообщения с ярлыком cygwin. Показать все сообщения

17 июл. 2014 г.

Настройка rsync для репликации между двумя windows серверами (без использования cwRsync)

Чтобы настроить репликацию между двумя серверами windows, используя rsync нужно сначала установить cygwin. В сети есть различные варианты урезанной установки, т.е. только rsync + dll для того, чтобы она запустилась, но я не стал заморачиваться и поставил базовую систему cygwin и дополнительно rsync, ssh, openssl - из комплекта cygwin. Устанавливал из Интернета. Зато теперь у меня полно всяких unix-утилит, от bash и sed до perl. Мегабайт на 200.

Устанавливаем систему на оба сервера. Тот, что будет являться источником информации, будет запускать rsync в режиме демона. Тот, который будет забирать файлы - будет запускать свою rsync из планировщика.

На источнике с помощью vi ;-) создаем /etc/rsyncd.conf
use chroot=false
strict modes=false
uid=%RSYNC_USER_NAME%
gid=*
hosts allow = 192.168.0.1
transfer logging=yes
log format=%h %o %f %l %b
log flie=/var/log/rsync.log
motd file=/etc/rsync.motd

[Section]
path=/cygdrive/c/Новая папка/
transfer logging=yes

Можно использовать пробелы и русские буквы - текущая версия cygwin это позволяет, она в UTF-8. Но файл нужно создавать vi, тогда все ок. По поводу пробелов много обсуждения в сети. Резюме - все работает, только в конце не забываем слэш. Кавычек ни одинарных, ни двойных не нужно. А вот конечные пробелы удаляются.

Потом на источнике запускаем команду, которая вставляет запуск rsync в сервисы.
cygrunsrv --install "rsyncd" --path /usr/bin/rsync --args "--daemon --no-detach" \
--desc "Starts a rsync daemon for accepting incoming rsync connections" --disp "Rsync Daemon" --type auto

Ну, на получателе информации запускаем нечто вроде:
rsync --verbose --delete --progress -a --bwlimit=50K 192.168.0.100::Section "/cygdrive/c/Data/Куда сохранять/"


Вот тут кавычки нужны, двойные.

Ну и отдельная песня, как это запустить из планировщика. У меня получилось через cmd, запускающего bash c параметрами.
По-хорошему, нужно установить еще и cron, т.к. он удобнее и гибче и может запускать rsync нативно.