2012-01-14 6 views
0

일부 고정 로그를 모니터하는 Java 도구를 작성하고 싶습니다. 아이디어는 SSH를 사용하여 원격 서버에 로그온 한 다음 "tail -f xxx"명령 출력을 내 PC에 보내고 나머지는 일부 로그 분석 작업입니다. JSCH로 테스트했을 때 bufferReader 또는 InputStream에서 직접 정보를 읽었을 때 출력이 지연되어 퍼티에서 "tail -f xxx"를 실행 한 결과보다 훨씬 느리다는 것을 알았습니다. 코드에 뭔가가 있습니까? 아니면 JSCH로 계속해서 로그 정보를 얻는 좋은 방법이 아닌가?JSCH가 원격 서버에서 메시지를 충분히 빨리 가져올 수 있습니까?

답변

0

나는 그 원인을 발견했다. "tail -f xxx | grep zzz"와 같은 명령을 사용했습니다. 'grep'은 버퍼링을 사용하므로 일부 출력이 지연됩니다. 내 로컬 측면에서 필터링을 이동했습니다. 테스트 결과가 훨씬 좋습니다.

+0

GNU grep이 지원하는 버전 인 경우,'grep --line-buffered '를 사용하면이 문제를 피할 수 있습니다 (추가 CPU로드가 필요함). –

관련 문제