"pssh"を使用して1000を超えるサーバーでコマンドを実行するbashスクリプトを準備しています(/tmp/hostsに保存されています)。
pssh -h /tmp/hosts -i "uname;date"
[1] 13:10:56 [FAILURE] SERVER1 Exited with error code 255
Stderr: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for SERVER1 has changed,
and the key for the corresponding IP address 10.238.36.42
has a different value. This could either mean that.............
......................
[2] 13:10:56 [SUCCESS] SERVER2
Linux
Fri Jan 25 12:10:56 UTC 2019
[3] 13:10:56 [SUCCESS] SERVER3
Linux
Fri Jan 25 13:10:56 CET 2019
[4] 13:10:56 [SUCCESS] SERVER4
Linux
Fri Jan 25 12:10:56 UTC 2019
[5] 13:10:56 [SUCCESS] SERVER5
Linux
Fri Jan 25 12:10:56 UTC 2019
[6] 13:10:56 [SUCCESS] SERVER6
Linux
Fri Jan 25 12:10:56 UTC 2019
以下の出力が予想されます。警告がある場合は警告を抑制します。
[FAILURE], SERVER1, Exited with error code 255
[SUCCESS], SERVER2,Linux,Fri Jan 25 12:10:56 UTC 2019
[SUCCESS], SERVER3,Linux,Fri Jan 25 12:10:56 UTC 2019
[SUCCESS], SERVER4,Linux,Fri Jan 25 12:10:56 UTC 2019
[SUCCESS], SERVER5,Linux,Fri Jan 25 12:10:56 UTC 2019
[SUCCESS], SERVER6,Linux,Fri Jan 25 12:10:56 UTC 2019
[FAILURE], HOST1, Exited with error code 255
[FAILURE], HOST2, Exited with error code 255
ベストアンサー1
@Imorgのおかげで、次のことができます。
pssh -h /tmp/hosts -i "uname;date" | grep -o \[[A-Z][A-Z][A-Z]*\].* | sed -Ee 's/(^\[FAILURE\]) (SERVER[0-9]*) (.*)/\1, \2, \3/g' -Ee 's/(^\[SUCCESS\]) (.*)/\1, \2,'"$(uname)"','"$(date)"'/g'
したがって、grep -o \[[A-Z][A-Z][A-Z]*\].*
出力は次のようになります。
[FAILURE] SERVER1 Exited with error code 255
[SUCCESS] SERVER2
[SUCCESS] SERVER3
[SUCCESS] SERVER4
[SUCCESS] SERVER5
[SUCCESS] SERVER6
そしてFAILUREとSERVERとEXITEDの間にありますsed -Ee 's/(^\[FAILURE\]) (SERVER[0-9]*) (.*)/\1, \2, \3/g'
。between strings containing
最初の2つの単語の間にsed -Ee 's/(^\[SUCCESS\]) (.*)/\1, \2,'"$(uname)"','"$(date)"'/g'
追加して追加します。,
,output of uname command, output of date command
したがって、最終出力は次のようになります。
[FAILURE], SERVER1, Exited with error code 255
[SUCCESS], SERVER2,Linux,Fri Jan 25 19:27:30 UTC 2019
[SUCCESS], SERVER3,Linux,Fri Jan 25 19:27:30 UTC 2019
[SUCCESS], SERVER4,Linux,Fri Jan 25 19:27:30 UTC 2019
[SUCCESS], SERVER5,Linux,Fri Jan 25 19:27:30 UTC 2019
[SUCCESS], SERVER6,Linux,Fri Jan 25 19:27:30 UTC 2019