Снова доброго времени суток!
Если необходимость монтирования раздела 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).
Куда копать? Заранее спасибо!
видно, никто с таким извратом не сталивался :) для тех, кто столкнется:
кириллица преобразована в восьмеричные "экранированные" значения, а значит что нам поможет? :) printf нам поможет ...
Итого,
cat /путь/к/логу/log.txt | sed "s/#//g" | xargs -0 printf >/путь/к/логу/log.txt
Всем спасибо :)
мне пока не нужно, но взял на заметку
Весьма полезно. Спасибо за пост!
А ты в крон задание как добавляешь? Через crontab -e? Или через sudo crontab -e? Просто возникло предположение, эти две команды добавляют задания от разных пользователей, без sudo будет добавлено в cron пользователя от которого дана эта команда, а с sudo от рута и выполняться соответственно будут с разными привилегиями и т.д. может просто у рута и пользователя кодировки отличаются? Хотя log вроде как везде log должен быть, не на русском же...
крон был назначет командой
crontab /etc/crontab
и задание вносится туда непосредственно через редактирование самого файла /etc/crontab
задание выполняется от обычного пользователя, но если поставить от root - эффект такой же ... я выше написал в чем причина
Друзья админы! Существует также следующий простой вариант: при редактировании "crontab -e" в самом начале добавить переменную LANG=ru_RU.UTF-8
С уважением, branky.
Отправить комментарий