远程启动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大神可以为我解一下惑啊,非常感谢!
...全文
293 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjjk 2017-09-14
  • 打赏
  • 举报
回复
引用 6 楼 cy309173854 的回复:
[quote=引用 5 楼 sanjuejianke 的回复:] [quote=引用 3 楼 cy309173854 的回复:] 本地虚拟机B通过远程调用weblogic启动脚本是直接远程登录A,然后启动脚本吗?如果是这样的话可以su - xxx再切一下环境变量吧。 或者在远程服务器A上的脚本里面添加su - xxx 再切换下环境变量试试。
现在是在银行里,账号控制的比较严格,我没有sudo 的权限[/quote] 不需要sudo 权限 比如说你现在登录用户是test 用户,再执行以一下su - test 即可,只是要输入test用户密码 。[/quote] 问题解决了,非常感谢!
曹宇飞丶 2017-09-14
  • 打赏
  • 举报
回复
引用 5 楼 sanjuejianke 的回复:
[quote=引用 3 楼 cy309173854 的回复:] 本地虚拟机B通过远程调用weblogic启动脚本是直接远程登录A,然后启动脚本吗?如果是这样的话可以su - xxx再切一下环境变量吧。 或者在远程服务器A上的脚本里面添加su - xxx 再切换下环境变量试试。
现在是在银行里,账号控制的比较严格,我没有sudo 的权限[/quote] 不需要sudo 权限 比如说你现在登录用户是test 用户,再执行以一下su - test 即可,只是要输入test用户密码 。
sjjk 2017-09-14
  • 打赏
  • 举报
回复
引用 3 楼 cy309173854 的回复:
本地虚拟机B通过远程调用weblogic启动脚本是直接远程登录A,然后启动脚本吗?如果是这样的话可以su - xxx再切一下环境变量吧。 或者在远程服务器A上的脚本里面添加su - xxx 再切换下环境变量试试。
现在是在银行里,账号控制的比较严格,我没有sudo 的权限
sjjk 2017-09-14
  • 打赏
  • 举报
回复
引用 1 楼 ipqtjmqj 的回复:
可以改变虚拟机B的环境变量而不影响虚拟机B中其他程序的使用,因为子shell的环境变量不影响父shell的环境变量
这种方法试过无效
曹宇飞丶 2017-09-13
  • 打赏
  • 举报
回复
本地虚拟机B通过远程调用weblogic启动脚本是直接远程登录A,然后启动脚本吗?如果是这样的话可以su - xxx再切一下环境变量吧。 或者在远程服务器A上的脚本里面添加su - xxx 再切换下环境变量试试。
常书 2017-09-13
  • 打赏
  • 举报
回复
修改/etc/default/locale文件里的LANG变量看下
ipqtjmqj 2017-09-13
  • 打赏
  • 举报
回复
可以改变虚拟机B的环境变量而不影响虚拟机B中其他程序的使用,因为子shell的环境变量不影响父shell的环境变量

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧