複数のLinuxサーバーにログインし、sshを介して複数のコマンドの出力を収集するbashスクリプト

複数のLinuxサーバーにログインし、sshを介して複数のコマンドの出力を収集するbashスクリプト

.gnu/linux サーバー経由でログインし、次のコマンドの出力を収集する必要がありますSSH。パスワードのない認証をしてみましたSSH。 bashスクリプトを使用してこれを実行したいと思います。

df -lh | awk '{if ($5 >= 20) { print $6 "  " $2 "   "  $3  "  " $5 }}'
top -b -n1 | grep "Cpu(s)" | awk '{print 100 - $5}'

以下のコマンドを試しましたが、「コマンド」を引用するのでdf はなく、単一のコマンドが与えられたように動作しますが、次のような長いコマンドを提供します。

df -lh | awk '{if ($5 >= 20) { print $6 "  " $2 "   "  $3  "  " $5 }}'
top -b -n1 | grep "Cpu(s)" | awk '{print 100 - $5}'

動作しません。

ベストアンサー1

'などのパラレルSSHツールを使用することをお勧めします。衝突「または」PDSH'を選択すると、出力がよりエレガントになります。

サーバ名が「host01」から「host09」までと仮定すると、コマンドは次のようになります。

clush -Bw host0[1-9] "df -lh | awk '{if (\$5 >= 20) { print \$6 \""  \"" \$2 "\"   \""  \$3  "\"  \"" \$5 }}';top -b -n1 | grep 'Cpu(s)' | awk '{print 100 - \$5}'"

脱出に注意してください。

おすすめ記事