LINUX.ORG.RU

smbclient - проблема с русскими названиями ресурсов


0

0

Добрый день.
После перехода на samba 3.0.20 (ранее была 2.x) возникла следующая проблемма:
Хочу сделать резервную копию файлов с win-машины:
smbclient //w2000/c "password" -U "admin" -Tc /tmp/dump.tar "тест"
получаю ошибку:
tar: dumped 0 files and directories
Total bytes written: 0
NT_STATUS_NO_SUCH_FILE listing \TEST
Похоже русские символы переводятся в транслит.
В smb.conf кодировки прописаны правильно:
unix charset = koi8-u
dos charset = 866
Если с помощью smbclient просто зайти на этот ресурс и сделать ls. Русские имена файлов отображаются корректно. Также возможно переходить на папки с русскими названиями, с помощью cd.
Исходя из этих соображений немного изменил команду создания дампа:
smbclient //w2000/c "password" -U "admin" -c 'cd "тест"; tar c /tmp/dump.tar'
В таком случае команда отрабатывает корректно.
Меня это почти устраивает, только может возникнуть проблемма если каталог не существует - tar выполнит дамп всего ресурса.

Подскажите, возможно ли решить проблемму с русскими именами ресурсов?
Если такое невозможно, тогда может подскажете каким образом запускать tar только в случае удачного выполнения cd.


Ответ на: комментарий от Deleted

Попробовал - не помогло :(
Обнаружил интересную вещь (level debug - 9), при запуске smbclient для перекодирования названий ресурсов используются другие кодировки, похоже что на этапе трансляции этих имен файл smb.conf еще не считывается

INFO: Current debug levels:
all: True/9
tdb: False/0
printdrivers: False/0
lanman: False/0
smb: False/0
rpc_parse: False/0
rpc_srv: False/0
rpc_cli: False/0
passdb: False/0
sam: False/0
auth: False/0
winbind: False/0
vfs: False/0
idmap: False/0
quota: False/0
acls: False/0
locking: False/0
msdfs: False/0
Processing an item, тест
firstb=81104C8, secondb=BFFFF78A, len=5
Attempting to register new charset UCS-2LE
Registered charset UCS-2LE
Attempting to register new charset UTF-16LE
Registered charset UTF-16LE
Attempting to register new charset UCS-2BE
Registered charset UCS-2BE
Attempting to register new charset UTF-16BE
Registered charset UTF-16BE
Attempting to register new charset UTF8
Registered charset UTF8
Attempting to register new charset UTF-8
Registered charset UTF-8
Attempting to register new charset ASCII
Registered charset ASCII
Attempting to register new charset 646
Registered charset 646
Attempting to register new charset ISO-8859-1
Registered charset ISO-8859-1
Attempting to register new charset UCS2-HEX
Registered charset UCS2-HEX
Processed an item, TEST
Cliplist is: тест
lp_load: refreshing parameters
Initialising global parameters
params.c:pm_process() - Processing configuration file "/etc/samba/smb.conf"
Processing section "[global]"
doing parameter workgroup = UCHET
doing parameter server string = Samba Server
doing parameter printcap name = /etc/printcap
doing parameter load printers = no
doing parameter printing = lprng
doing parameter cups options = raw
doing parameter log file = /var/log/samba/%m.log
doing parameter max log size = 50
doing parameter security = user
doing parameter username map = /etc/samba/smbusers
doing parameter socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
doing parameter dns proxy = no
doing parameter unix charset = koi8-u
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
doing parameter dos charset = 866
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
doing parameter null passwords = yes
pm_process() returned Yes
lp_servicenumber: couldn't find homes
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
Substituting charset 'KOI8-U' for LOCALE
...

chief
() автор топика
Ответ на: комментарий от jackill

Перерыл кучу документации, но не могу найти нужную опцию :(
Если не тяжело направьте на правильный путь

PS Если Вы имели ввиду опцию -s , то она не помогает

chief
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.