Wiki
Clone wikicomp-house.repo / DeltaCopyCharset
Кодировка имен файлов в сервере DeltaCopy
Под windows есть довольно удобная сборка rsync с конфингуратором под названием DeltaCopy.
Все бы ничего, но есть проблема - при копировании файлов на системы с другой кодировкой имен файлов Кириллица в именах файлов так и остается в своей кодировке CP866.
У rsync есть ключ --iconv, но при попытке его использовать выдается сообщение:
rsync: The server is configured to refuse --iconv rsync error: requested action not supported (code 4) at /home/lapo/packaging/rsync-3.0.4-1/src/rsync-3.0.4/clientserver.c(840) [sender=3.0.4] rsync: read error: Connection reset by peer (104) rsync error: error in rsync protocol data stream (code 12) at io.c(760) [Receiver=3.0.7]
В общем, чтобы все заработало, достаточно открыть файл настроек rsyncd и добавить в него опцию charset. В DeltaCopy это файл переименовали из стандартного /etc/rsyncd.conf в c:\DeltaCopy\deltacd.conf
Добавляем в него строчку с кодировкой компьютера charset = CP866
use chroot = false strict modes = false charset = CP866 [Backup] path = /cygdrive/c/ comment = Backup Drive read only = false
И все, можно использовать функции перекодировки имен файлов:
rsync -a --iconv=CP866,UTF8 ...
PS. И не совсем все
поскольку библиотека cygwin-1.dll, с которой собран deltacopy не поддерживает UTF8, необходимо скачать пропатченую библиотеку отсюда и положить ее в директорию с программой deltacopy вместо старой. Вот теперь все.
PSPS. А еще лучше
Скачать cwrsync и полность заменить все файлы в папке с deltacopy им.
Updated