Rsync Windows <-> Linux
Часто возникает необходимость делать rsync с или на windows. В этой статье я описываю как запускать rsync с Windows.
1. Установить cwRsync
К сожалению нативной свободной или хотя бы бесплатной версии rsync для Windows не существует. Однако существует сборка rsync с cygwin под названием cwRsync.
Установщик можно скачать отсюда:
http://downloads.sourceforge.net/sereds/cwRsync_2.1.5_Installer.zip?modtime=1220778493&big_mirror=0
2. Добавте $CYGWIN_INSTALL_PATH/bin/ в переменную окружения PATH
Панель управления -> Система -> Дополнительно -> Переменные окружения
3. Решите проблему с не-ascii символами
Вот письмо, опысывающее эту проблему:
>I'm trying to use rsync (version 2.6.9) to back up some files. However, a few >of them contain Hebrew characters. While I can back them up, the filenames >come through scrambled (I don't have Hebrew characters anymore). I've tried >the -8 switch, but that didn't work. Any suggestions? > >Background: > >The files are created on Windows and saved on a samba share (v3.0.24). I can >copy them around in Windows just fine. Konqueror, on the machine the files >are physically on shows the file names properly. But when I copy them using >rsync, the file names get scrambled (Hebrew characters only; English >characters are fine). I guess you're using cwrsync which uses the cygwin1.dll. The normal release is not unicode aware and therefore has problems with non-ascii characters. I also had this problem with German umlauts. There is a unicode-release of the cygwin1.dll which you can copy over your existing cygwin1.dll. In my case the problems went away. The characters still look strange when looked at in Linux (different codepage, encoding...) but at least from the samba share they're the same. http://www.okisoft.co.jp/esc/utf8-cygwin/
Т.е. нужно с http://www.okisoft.co.jp/esc/utf8-cygwin/ скачать файл cygwin.dll и заменить им тот, что идет в комплекте с cwRsync.
Готово
Для того чтобы файлы с не-ascii смволами в имене нормально передавались, добавте --iconv=. в опции при вызове rsync.

Очень своевременный совет.
Очень своевременный совет. Только столкнулся с этой проблемой при настройке NasBackup, как попал на это решение. Спасибо!
проблема с длинными именами
Обсуждение проблемы с длинными именамиhttp://www.itefix.no/i2/node/11064?page=1 Ссылка для скачивания фикс-файлов: http://www.wallner-software.com/download.php?file=16
"К сожалению нативной
"К сожалению нативной свободной или хотя бы бесплатной версии rsync для Windows не существует."
Есть, называется "DeltaCopy". http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp
нет
тоже работает через cygwin - в комплекте просто .dll-ки лежат
тем не менее, проблема остаётся
При копировании с Linux-клиентов на Windows-сервер.
UTF-8 Cygwin c сайта http://www.okisoft.co.jp/esc/utf8-cygwin/ решает проблему с русскими буквами, но не решает с длинными именами.
А патч wsRsync_0.0.9.zip с сайта http://www.michael-wallner.at/website/pages/downloads/tools.php наоборот, решает проблему с длинными именами, но русские названия при этом на сервере становятся крякозябрами.
есть решение!
Нашёл решение именно для русских (а не юникодных) названий файлов/папок.
1. Ставим патч wsRsync_0.0.9.zip с http://www.michael-wallner.at/website/pages/downloads/tools.php
2. В конфиге сервера задаём "charset = Windows-1251"
3. В опции клиентов включаем "--iconv=utf8"
Клиент в Windows
Только что пришлось использовать rsync для перетаскивания данных с Windows на Linux. Если запускать сервер на винде, а клиента на линуксе, никаких проблем с кодировками нет. В конфиге сервера прописал
charset=Windows-1251, как предложил kedr, а клиент запускал с опцией--iconv='UTF-8,Windows-1251'.Если же заменить cygwin1.dll на патченный, с виндовым сервером возникают проблемы, и на клиенте для файлов с не-ascii именами видим сообщение "файл-такой-то has vanished". Ссылка по теме: Rsync iconv (Cygwin) (file has vanished)
Где же вы раньше были!
Огромное всем спасибо,
ушел пробовать!
Отправить комментарий