에서 나는 만약 내가 두 가지 방법으로 원격 스크립트를 실행 할 수 있어요한다. 우선 (간접) #ssh 세컨드 (SSH 접속 후) #ssh # #exit실행 원격 리눅스 스크립트 나 원격 컴퓨터
I 채널 전송의 종류에 약간 차이가 있다고 판단 (다시 단말 호스트). 즉, 원격 스크립트 실행을 위해 주먹을 사용할 때 스크립트 출력은 호스트 mashine이 아니라 두 번째 방법처럼 원격으로 인쇄해야합니다.
uturksat1과 uturksat2 두 대의 기계가 있습니다. uturksat2에는 리눅스 스크립트 (/tmp/runScript.sh)와 Java 클래스 Provider가 있습니다. Linux 스크립트는 소켓을 연 다음 수신하는 Provider java 응용 프로그램을 실행합니다. uturksat1 시스템에서
#!/bin/bash
echo "Provider"
$JAVA_HOME/bin/java -cp /tmp Provider&
$JAVA_HOME/bin/java -version
rm /tmp/pid
echo "$!"> /tmp/pid
echo "Provider-finish"
exit 0
, 나는 다음과 같이 입력이있을 때 자동으로 명령 프롬프트를 반환하지 않습니다
[email protected]:/tmp# ssh uturksat2 /tmp/runScript.sh
Provider
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode, sharing)
Provider-finish
Waiting for connection
유형 다음 명령은, 내가
를 반환 Ctrl + C를 눌러 필요가있다 명령
[email protected]:/tmp# ssh -t uturksat2 /tmp/runScript.sh
Provider
Waiting for connection
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) Client VM (build 20.4-b02, mixed mode, sharing)
Provider-finish
Connection to uturksat2 closed.
[email protected]:/tmp#
제공자 응용 프로그램은 I 포트 200에 텔넷 통해 테스트 할 수 있습니다, 실행되지 않습니다 4 공급자가 듣고 있습니다.
telnet uturksat2 2004
마지막으로 마지막 문제는 공급자 원격 리눅스 스크립트 실행의 첫 번째 방법으로,의 log4j LOF 파일이 생성되지는 internall 로그를 유지하기 위해 log4j를 사용하지만, 두 번째 방법으로 작성됩니다.
정확하게 당신이 시도 명령, 당신이있어 출력하고, 원하는 출력을 설명해주십시오. 'ssh remotehost prog arg'는'argg'를 사용하는'prog'를'remotehost'에서 실행하지만 원격 stdout과 stderr는 로컬로 리디렉션합니다. http://support.suso.com/supki/SSH_Tutorial_for_Linux 또는'ssh'에 대한 다른 문서를 읽으십시오. 당신은'ssh -v'를 실행하여 무슨 일이 일어나고 있는지 이해할 수 있습니다. –