2013-07-24 2 views
1

java-ganymed 플러그인 (JSch도 사용됨)을 사용하여 Unix 원격 서버에 연결하는 Java 코드를 작성하고 있습니다.환경 변수가있는 Java를 통한 SSH

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. 

해당 로그인의 환경 변수를 사용하는 원격 서버에있는 쉘 스크립트를 실행해야합니다. 로그인이 성공하고 스크립트가 실행되지만 완료되지는 않습니다. 퍼티 (Put) 등의 대화 형 로그인 쉘 ('env'명령 사용)과 비교하여 환경 변수가 완전히로드되지 않았는지 확인했습니다.

내 스크립트 전에/etc/profile, .bashrc 등을 실행 해 보았습니다. 스크립트는 한 걸음 더 나아가지만 다시 멈 춥니 다. 따라서 몇 가지 환경 변수가로드되었지만 모두가 아닌 것은 분명합니다. Java 비대화 형 세션을 위해 모든 환경 변수가로드되는지 확인하려면 해결 방법이 필요합니다. 원격 서버에 대한 루트 권한이 없습니다. 대신 /etc/profile.bashrc는, 소스 스크립트로를 사용해보십시오 실행하려고의

감사합니다, 아리아

답변

0

. 스크립트 또는 명령의 일부로 실행하십시오 :

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

또는 기타 관련 구성 스크립트 (파일의 시작이 중요 함)를 실행하십시오.

+0

답변 해 주셔서 감사합니다. 나는 이것을 쉘 스크립트 시작 부분에 추가하려고 시도했다. 다시 말하면, 초기화되지 않은 몇 가지 환경 변수가 있습니다. 나는 어느쪽에 있는지에 관해 모른다. 어쨌든 나는 정상적인 대화 형 로그인에서 실행되는 명시 적으로 실행해야하는 항목이 무엇인지 확인합니다. – AryA