SSH通过Java与环境变量

时间:2013-07-24 11:06:49

标签: java shell variables ssh environment

我正在编写一个java代码,使用java-ganymed插件连接到Unix远程服务器(也尝试使用JSch)。

    Connection conn = new Connection("host");
    conn.connect();
    boolean testAuth = conn.authenticateWithPassword("user", "pwd");
    Session sess = conn.openSession();
    sess.execCommand(Commands); //"Commands" is a string variable with "sh" command.

我需要运行位于远程服务器的shell脚本,该脚本使用该登录的一些环境变量。我的登录成功,脚本确实执行但未完成。我检查了环境变量没有完全加载,与运行像Putty等交互式登录shell(使用'env'命令)相比。

我尝试在脚本之前运行/ etc / profile,.bashrc等。脚本向前移动一步但又停止了。因此很明显,加载了一些环境变量但并非全部。我需要一个解决方法来确保为Java非交互式会话加载所有环境变量。我没有远程服务器的root权限。

谢谢, 艾莉亚

1 个答案:

答案 0 :(得分:0)

尝试使用它们作为源脚本,而不是尝试运行/etc/profile.bashrc。执行此操作作为脚本或命令的一部分:

. .bashrc
. /etc/profile
. /etc/environment

或任何其他相关的配置脚本(点广告,文件的开头很重要)。