кодировка лог файла

Изображение пользователя tswet.

Снова доброго времени суток!
Если необходимость монтирования раздела netware командой /usr/bin/ncpmount -S server -y utf8 -p cp866 -V volume -U user -P pass /каталог/монтирования/
после монтирования выполняется синхронизация командой rsync с перенаправлением в лог файл
rsync -rvt /каталог/монтирования/ /каталог/для/синхронизации/ >/каталог/для/логов/log.txt

так вот, проблема в том, что если выполнять скрипт с последовательностью данных команд руками, то лог файл записывает кириллицу без проблем, а если помещать его в cron, то на выходе кириллица преобразуется в цифровые значения (\#321\#204\#320\#260\#320\#271\#320\#273.txt).

Куда копать? Заранее спасибо!

+4
tswet - 26 Май, 2010 - 15:07
Изображение пользователя tswet.

видно, никто с таким извратом не сталивался :) для тех, кто столкнется:

кириллица преобразована в восьмеричные "экранированные" значения, а значит что нам поможет? :) printf нам поможет ...
Итого,

cat /путь/к/логу/log.txt | sed "s/#//g" | xargs -0 printf >/путь/к/логу/log.txt

Всем спасибо :)

0
tigris - 26 Май, 2010 - 15:10
Изображение пользователя tigris.

мне пока не нужно, но взял на заметку

0
knuckles - 26 Май, 2010 - 15:13

Весьма полезно. Спасибо за пост!

0
dm - 26 Май, 2010 - 15:43
Изображение пользователя dm.

А ты в крон задание как добавляешь? Через crontab -e? Или через sudo crontab -e? Просто возникло предположение, эти две команды добавляют задания от разных пользователей, без sudo будет добавлено в cron пользователя от которого дана эта команда, а с sudo от рута и выполняться соответственно будут с разными привилегиями и т.д. может просто у рута и пользователя кодировки отличаются? Хотя log вроде как везде log должен быть, не на русском же...

0
tswet - 26 Май, 2010 - 20:09
Изображение пользователя tswet.

крон был назначет командой
crontab /etc/crontab

и задание вносится туда непосредственно через редактирование самого файла /etc/crontab

задание выполняется от обычного пользователя, но если поставить от root - эффект такой же ... я выше написал в чем причина

0
Гость - 22 Август, 2010 - 20:07

Друзья админы! Существует также следующий простой вариант: при редактировании "crontab -e" в самом начале добавить переменную LANG=ru_RU.UTF-8
С уважением, branky.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры