複数のサーバーでJavaのバージョンを確認するには? [コピー]

複数のサーバーでJavaのバージョンを確認するには? [コピー]

私は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

おすすめ記事