![여러 서버에서 Java 버전을 확인하는 방법은 무엇입니까? [복사]](https://linux55.com/image/154343/%EC%97%AC%EB%9F%AC%20%EC%84%9C%EB%B2%84%EC%97%90%EC%84%9C%20Java%20%EB%B2%84%EC%A0%84%EC%9D%84%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
저는 100개의 서버를 가지고 있고 스크립트를 사용하여 중앙 서버에서 ssh를 통해 로그인해야 합니다. 아래에서 이것을 시도했습니다. 버전을 중앙 서버에 저장될 파일로 리디렉션해야 합니다.
#!/bin/bash
CMD='java -version'
while read line
do
ssh -n user@"$line" $CMD >> /pathforoutputfile/outputjava.txt
done < /pathforhosts/hosts.txt
하지만 파일에서 생성된 출력을 얻지 못합니다./pathforoutputfile/outputjava.txt
답변1
이 명령은 실제로 stderr에 씁니다.
ron@haggis:~$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Ubuntu-3ubuntu118.04.3)
OpenJDK 64-Bit Server VM (build 11.0.2+9-Ubuntu-3ubuntu118.04.3, mixed mode, sharing)
ron@haggis:~$
ron@haggis:~$ java -version 2> foo.txt
ron@haggis:~$ cat foo.txt
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Ubuntu-3ubuntu118.04.3)
OpenJDK 64-Bit Server VM (build 11.0.2+9-Ubuntu-3ubuntu118.04.3, mixed mode, sharing)
2>>
따라서 in 대신에 using을 사용하여 >>
리디렉션 해야 합니다 .
ssh -n sgarole@"$line" $CMD >> /pathforoutputfile/outputjava.txt
내가 알아차린 또 다른 점은 /pathforoutputfile/outputjava.txt
.