从多个Linux服务器中提取Java版本

时间:2018-11-14 13:27:01

标签: shell

我下面的脚本没有从远程服务器提供正确的Java版本,而是打印源服务器的版本:

    for i in 'cat serverlist.txt'
    do
    ssh $i `java -version 2>&1 >/dev/null | grep 'java version' | awk '{print $3}'|sed 's/"//g'`
    done >>sample.txt
cat sample.txt

预期结果如下:

  

例如:1.8.181(每台服务器的版本都不同,应该打印出来)

2 个答案:

答案 0 :(得分:0)

您不应该在远程命令中使用反引号-您可能正在寻找单引号:

ssh $i 'java -version 2>&1 >/dev/null | grep "version" | cut -d" " -f 3-'

答案 1 :(得分:0)

尝试以下操作后,我可以正确获得结果:

  

ssh $ server> sample.txt 2>&1 java -version 2>&1 >/dev/null | grep 'java version' | awk '{print $3}'|sed 's/"//g' >>s1.txt退出;猫s1.txt