远程启动linux脚本 LANG环境变量获取错误问题
sjjk 2017-09-13 11:20:15 发现一个比较忧伤的问题:
直接终端登录linux和在另一台机器上通过ssh远程登录后,用env看到linux系统的环境变量值是不一样的!
尤其是环境变量LANG,用ssh远程登录后env看到的永远是本地linux系统的LANG变量值:
比如,如果远程服务器A的LANG=zh_CN.UTF-8,而服务器B的LANG=en_US.UTF-8,那么直接通过终端登录远程服务器A,看到LANG=zh_CN.UTF-8,是对的,而在服务器B上通过ssh登录A后看到的却是LANG=en_US.UTF-8,是服务器B的环境变量。
现在有一台远程服务器A,A上有一个启动weblogic服务的shell脚本,要求weblogic服务必须在LANG=zh_CN.UTF-8环境下执行,在脚本里面有设置LANG的值:export LANG=zh_CN.UTF-8,而本地虚拟机B的LANG=en_US.UTF-8。
现在的问题是,如果登录虚拟机A,直接执行该脚本,是没有问题的,看日志,日期是中文的,也就是说LANG=zh_CN.UTF-8是生效的。
但是,如果在本地虚拟机B通过远程调用weblogic启动脚本,获取的LANG是不对的,查看日志,日期显示为英文,也就是说,即使在远程服务器A上的脚本里面设置了LANG=zh_CN.UTF-8,实际执行过程中的LANG值也是本地虚拟机B的LANG变量值,但是我在远程脚本里面打印了一下LANG,看到的又确实是zh_CN.UTF-8。所以虽然weblogic是成功启动了,但系统实际使用中确实出现了因为语言不对而造成的问题。
如果在不更改本地虚拟机B的系统变量的情况下,怎么解决这个问题?
哪位linux大神可以为我解一下惑啊,非常感谢!