2010-12-09 2 views
0

원격 서버 (Solaris)에서 로컬 시스템 (Windows)으로 로그를 수집하는 도구를 개발 중입니다. TelnetToClient.java를 사용하여 서버와 연결을 성공적으로 설정했습니다. Runtime.getRuntime.Exec()를 통해 명령을 실행하려고 시도했지만 작동하지 않았습니다. 그런 다음 파일을 삭제하기 위해 서버에 명령을 보내려면 다음 코드를 사용합니다 (이 명령을 실행하는 방식이 작동하는지 확인하기 위해).GUI에서 원격 서버로 tail 명령을 실행하는 데 도움이 필요합니다.

공개 무효 exeComm (문자열 통신) { 시도 { _executor.sendCommand (comm); 통신은 루트 디렉토리에있는 성공적으로 파일 테스트를 삭제 "RM/테스트"이며, 발행 된 명령입니다} }

, } 캐치 (IOException이 전자) { e.printStackTrace(). 로그를 끝내기 위해 같은 방법으로 명령을 실행했습니다. 명령은 "tail -f /usr/log/tracelog.log"tailedtracelog "이지만이 명령은 서버에 명령을 내 보내지 않으므로 필자의 주요 요구 사항 인 로그를 꼬리 수는 없습니다. Runtime.getRuntime.Exec()을 사용하여 동일한 삭제 명령을 시도했는데이 또한 작동하지 않습니다. 누군가 이걸 좀 도와 주실 래요?. 미리 감사드립니다.

+0

잠깐 만요. Solaris 상자에서 Windows 상자로 로그를 복사해야합니까? 아니면 원격 로그를 끝내는 일종의 콘솔을 만드나요? –

+0

안녕하세요 Martijn, 솔라리스 상자에서 로그를 수집해야하는 Windows에서 도구 (GUI)를 개발하고 있습니다. – passionatebalu

+0

이러한 로그는 log4j 또는 다른 일반 로깅 시스템에서 생성됩니까? –

답변

1

아,이 오래된 고전 :). 읽으십시오 Why Runtime exec() won't

+0

그 기사를 읽었습니다. 그 때 대체 방법은 무엇입니까? – passionatebalu

+0

파이프 출력과 같은 원격 파일 시스템 명령을 처리 할 때 입력 스트림과 출력 스트림을 분할해야한다는 기사의 섹션이 있습니다. –

관련 문제