Wiki

Clone wiki

comp-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