java -version重定向到檔案

wang_0720發表於2013-12-11
要求統計IDC中所有機器上裝的jdk的版本,想用指令碼批次查詢但是在用java -version >log時,執行的結果總是顯示在終端而不是重定向到log中。google了一番說java的輸出是標準錯誤流。要把錯誤輸出也輸出到標準輸出即在命令後面加上2>&1。
#!/usr/bin/expect
set timeout 3
set localhost 192.168.151.90
#login to remote host
foreach host {
192.168.151.40
...
...
192.168.151.23
} {
spawn ssh -l root ${host}
expect {
        "no)?" {send "yes\r";exp_continue}
        "password:" {send "123456\r"}
        }
expect "]*"
send "echo -e 'host:\\c'>/tmp/$host\r"
expect "]*"
send "ifconfig eth0|grep -w inet|sed 's/^.*addr://'|sed 's/Bcast.*$//'>>/tmp/$host\n"
expect "]*"
send "java -version>>/tmp/$host 2>&1\r"
expect "]*"
send "scp /tmp/$host root@$localhost:/tmp\r"
expect {
        "no)?" {send "yes\r";exp_continue}
        "password:" {send "123456\r"}
        }
expect "]*"
send "exit\r"
exec cat /tmp/$host >>/tmp/java_version
spawn rm -f /tmp/$host
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27181165/viewspace-1063013/,如需轉載,請註明出處,否則將追究法律責任。

相關文章