Здравствуйте,
Наконец разобрался,

стена оказалась

полезной....
Правда пришлось поставить rsync_v.3.0.3 на freeBSD-шном рутере. Потом от туда вь1ковь1ривал бинарник + несколько библиотек, по ходу требования... Конечно ето извращение, но в FreeNAS-e нелзя (вернее не смог) поставит из портов rsync_v.3.0.3. , а компилированнь1е бинарнь1е пакеть1 для freeBSD(FreeNAS) не нашел...
Какая бь1ла постановка? значит так:
1. Файловь1 сервер на FreeNAS-e.
2. Локальная сеть на Виндоусе
3. Архив с FreeNAS-а, тоже на Виндоусе. - работает сервер "cwRsync Server"
Проблемма бь1ла только с кириллскими именами на архивирующем Виндовским компютером.
Rsync которь1й, стандартно в FreeNAS-e в версии максимум 2.6.9_2, и не поддерживает "--iconv=CONVERT_SPEC", пришлось обновлятся вь1ше описаннь1м способом.
Решение :
Код: Выделить всё
freenas:# rsync --iconv=UTF-8,CP1251 -a --log-file=/var/log/rsync_local.log --delete --delete-after "/mnt/Documents/" "Administrator@192.168.0.3::backup"
Нужную мне перекодировку --iconv=UTF-8,CP1251, поместил в файле : /etc/rc.d/rsync_local , которь1й в свою очередь генерирует rsync_local0.sh.
По неведомой причине /etc/rc.d/rsync_client не захотел работать в сторону беккапа на виндовс компютере, ну и ладно.
Пришлось еще на Архивном виндовсе, добавить в rsyncd.conf : charset = CP1251
Вроде все,

, а "cwRsync Server" понравился потому что работает как Services, можно сказать прозрачно

.
Благодарность
terminus-у за очень полезную подсказку!
П.П. если нужно будет, добавлю код файлов sync_local, rsync_client и rsyncd.conf
П.П.П с удовольствием
/etc/rc.d/rsync_client :
Код: Выделить всё
#!/bin/sh
# Copyright (c) 2007-2008 Volker Theile (votdev@gmx.de)
# All rights reserved.
# PROVIDE: rsync_client
# REQUIRE: DAEMON
# BEFORE: cron
. /etc/rc.subr
. /etc/configxml.subr
name="rsync_client"
# Defaults
rsync_logfile=${rsync_logfile:-"/var/log/${name}.log"}
# Get number of scripts to generate.
_scriptnum=`configxml_get_count "//rsync/rsyncclient"`
if [ 0 -lt ${_scriptnum} ]; then
echo "Generating client rsyncd cron scripts."
_i=0
while [ ${_scriptnum} -gt 0 ]
do
# Set scriptname.
_rsyncscript=/var/run/rsync_client${_i}.sh
# Generate the shell script that is used by cron.
/usr/local/bin/xml sel -t -m "//rsync/rsyncclient[position()=${_scriptnum}]" \
-o "#!/bin/sh" -n \
-v "concat('/usr/bin/logger -p local4.notice "Start of remote RSYNC synchronization from ',remoteshare,' on ',rsyncserverip,' to ',localshare,'"')" -n \
-o "if [ -r /var/run/rsync_client-running${_i} ]; then" -n \
-o "/usr/bin/logger -p local4.notice "Previous client synchronization still running... exiting"" -n \
-o "exit" -n \
-o "fi" -n \
-o "/usr/bin/touch /var/run/rsync_client-running${_i}" -n \
-o "/usr/local/bin/rsync -rtz --log-file=${rsync_logfile} " \
-i "count(opt_delete) > 0" \
-o "--delete --delete-after " \
-b \
-i "contains(rsyncserverip,'.')" \
-v "concat('"rsync://',rsyncserverip,'/',remoteshare,'" "',localshare,'"')" -n \
-b \
-i "contains(rsyncserverip,':')" \
-v "concat('"rsync://\\[',rsyncserverip,'\\]/',remoteshare,'" "',localshare,'"')" -n \
-b \
-o "/bin/rm -f /var/run/rsync_client-running${_i}" -n \
-v "concat('/usr/bin/logger -p local4.notice "End of remote RSYNC synchronization from ',remoteshare,' on ',rsyncserverip,' to ',localshare,'"')" \
${configxml_file} | /usr/local/bin/xml unesc > ${_rsyncscript}
# Add exectutive right to the script.
/bin/chmod 0770 ${_rsyncscript}
_i=$(( ${_i} + 1 ))
_scriptnum=$(( ${_scriptnum} - 1 ))
done
fi
/etc/rc.d/rsync_local :
Код: Выделить всё
#!/bin/sh
# Copyright (c) 2007-2008 Volker Theile (votdev@gmx.de)
# All rights reserved.
# PROVIDE: rsync_local
# REQUIRE: DAEMON
# BEFORE: cron
. /etc/rc.subr
. /etc/configxml.subr
name="rsync_local"
# Defaults
rsync_logfile=${rsync_logfile:-"/var/log/${name}.log"}
# Get number of scripts to generate.
_scriptnum=`configxml_get_count "//rsync/rsynclocal"`
if [ 0 -lt ${_scriptnum} ]; then
echo "Generating local rsyncd cron scripts."
_i=0
while [ ${_scriptnum} -gt 0 ]
do
# Set scriptname.
_rsyncscript=/var/run/rsync_local${_i}.sh
# Generate the shell script that is used by cron.
/usr/local/bin/xml sel -t -m "//rsync/rsynclocal[position()=${_scriptnum}]" \
-o "#!/bin/sh" -n \
-v "concat('/usr/bin/logger -p local4.notice "Start of local RSYNC from ',source,' to ',destination,'"')" -n \
-o "if [ -r /var/run/rsync_local-running${_i} ]; then" -n \
-o "/usr/bin/logger -p local4.notice "Previous local synchronization still running... exiting"" -n \
-o "exit" -n \
-o "fi" -n \
-o "/usr/bin/touch /var/run/rsync_local-running${_i}" -n \
-o "/usr/local/bin/rsync -a --iconv=UTF-8,CP1251 --log-file=${rsync_logfile} " -i "count(opt_delete) > 0" -o "--delete --delete-after " -b -v "concat('"',source,'" "',destination,'"')" -n \
-o "/bin/rm -f /var/run/rsync_local-running${_i}" -n \
-v "concat('/usr/bin/logger -p local4.notice "End of local RSYNC synchronization from ',source,' to ',destination,'"')" \
${configxml_file} | /usr/local/bin/xml unesc > ${_rsyncscript}
# Add exectutive right to the script.
/bin/chmod 0770 ${_rsyncscript}
_i=$(( ${_i} + 1 ))
_scriptnum=$(( ${_scriptnum} - 1 ))
done
fi
rsync.conf (windows - cw rsync server) :
Код: Выделить всё
use chroot = false
strict modes = false
charset = CP1251
#hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
[backup]
path = /cygdrive/f/backup
read only = false
transfer logging = yes