AWS で実行されるサーバーは 100 台あります。リモートシステムの各ユーザーが使用するデータ量を簡単に確認し、それをテキストファイルに出力する必要があります。どうすればこれを行うことができますか?
答え1
次の並列シェルを使用できます。クラスタシェルまたはPDSH。
これにより、中央システムでパスワードなしのSSH認証を設定したと仮定し、同時に100台のサーバーのそれぞれでコマンドを実行できます。さらに、さまざまなグループを作成して論理的に構成することもできます。
コンピュータ名がaws0、aws1、aws2、...aws99であるとしましょう。
Clustershellを使用すると、これらのすべてのデバイス(この例では稼働時間)で次のコマンドを実行できます。
# clush -w aws[0-100] uptime
aws0: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws1: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws2: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
[...]
aws99: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
このようにして、サブセットに対してコマンドを実行できます。
clush -w aws[22-55,73-82,90,99] uptime
aws22: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws23: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
[...]
aws55: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws73: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
[...]
aws82: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws90: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws99: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
その後、同じ結果をグループ化するには、clushの-bオプションを使用するか、pdshパイプラインdshbak -cを使用できます。
# clush -bw aws[0-99] uptime
---------------
aws[0-99] (100)
---------------
21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00