crontab执行脚本中文乱码

来自:互联网
时间:2018-08-10
阅读:

手动执行脚本没有出现中文乱码,用crontab执行脚本时中文全部是是乱码。

产生原因

这是因为Unix/Linux下使用crontab时的运行环境已经不是用户环境了,因此原本用户下的一些环境变量的设置就失效了。例如原来用户环境变量设置的是GB2312,但是使用crontab运行时的环境变量就可能是ISO8859-1,所以需要在脚本里额外添加缺失的环境变量,针对中文问题,需要声明 LANG参数。

解决方法

先要知道系统的LANG参数是什么,打开 /etc/sysconfig 目录中的?i18n 文件可以查到。

也可以在终端中执行命令?echo $LANG 得到编码,在我的服务器中输出的是 zh_CN.UTF-8

打开 /var/spool/cron 目录中的脚本文件,在头部加入:

LANG="zh_CN.UTF-8"
export LANG

把时间改到下一分钟,测试下看看吧!

返回顶部
顶部