cron上で実行しているスクリプトのLANG環境変数がen_USになることがあった。
/etc/init.d/cron→/etc/init.d/functions→/etc/profile.d/lang.shと呼び出していて
if [ -n "$LANG" ]; then case $LANG in *.utf8*|*.UTF-8*) if [ "$TERM" = "linux" ]; then if [ "$consoletype" = "vt" ]; then case $LANG in ja*) LANG=en_US.UTF-8 ;; ko*) LANG=en_US.UTF-8 ;; si*) LANG=en_US.UTF-8 ;; zh*) LANG=en_US.UTF-8 ;; ar*) LANG=en_US.UTF-8 ;; fa*) LANG=en_US.UTF-8 ;; he*) LANG=en_US.UTF-8 ;; en_IN*) ;; *_IN*) LANG=en_US.UTF-8 ;; esac fi fi ;; *) if [ "$TERM" = "linux" ]; then if [ "$consoletype" = "vt" ]; then case $LANG in ja*) LANG=en_US ;; ko*) LANG=en_US ;; si*) LANG=en_US ;; zh*) LANG=en_US ;; ar*) LANG=en_US ;; fa*) LANG=en_US ;; he*) LANG=en_US ;; en_IN*) ;; *_IN*) LANG=en_US ;; esac fi fi ;; esac fi
となっていて、UTF-8系だとen_US.UTF-8に、UTF-8系以外だと、en_USに上書きされてしまうっぽい。
ただし、$TERMと$consoletypeを見ているので、
$ service crond restart
とかすると環境変数を引き継いでくれるみたいだけども。