Недавно мы столкнулись с проблемой кодировки при отправке отчетов по крону.
Ниже представлена часть скрипта.
if [ $err_f -ne 0 ] then echo "Резервное копирование директориях $dirr_nn на rum-gpfsstorage0 завершилось неудачно. Смотри логи $log_nn на rum-gpfs-b1.scanex.ru в директории /scripts/logs/ .Резервное копирование остальных директорий завершилось удачно." | mail -r "backup-rum-gpfs@scanex.ru" -s "backup gpfs $dirr_nn directories failed" adm@scanex.ru else echo "Резервное копирование завершилось удачно." | mail -r "backup-rum-gpfs@scanex.ru" -s "backup all gpfs directories successfull" adm@scanex.ru fi
Когда скрипт запускался по cron тело письма было нечитабельным. Ниже header письма:
User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: application/octet-stream Content-Transfer-Encoding: 8bit
Если же скрипт запускался вручную все было в порядке. Header ниже:
User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit
Решение оказалось очень простым. Для изменения Content-Type на text/plain; charset=utf-8 необходимо добавить в начало скрипта следующую запись:
export LANG=en_US.UTF-8
Profile автора