0

私の学校では、さまざまなOSおよびハードウェア構成を実行する一連の機能的に同一のサーバーを提供しています。ほとんどの場合、これらのうち5つを同じ意味で使用できます。残念ながら、他の学生はいくつかのマシンに集まる傾向があり、行き詰まっていないマシンを見つけるのは苦痛です。

私がしたいのは、マシンにsshで接続し、次のコマンドを実行することです。

w | wc -l

そのサーバーの負荷の概算を取得し、その情報を使用して最も影響の少ないサーバーを選択します。クライアント側のロードバランサーの一種。

これを行う方法や同じ結果を達成する方法はありますか?

4

3 に答える 3

2

これをあなたの.bashrcファイルに入れます

function choose_host(){
hosts="host1 ... hostn"
for host in $hosts
do
  echo $(ssh $host 'w|wc -l') $host
done | sort | head -1 | awk '{print $2}'
}

function ssh_host(){
  ssh $(choose_host)
}

choose_hostあなたが探しているものをあなたに与えるべきです。これは絶対にやり過ぎですが、私は遊び心を感じていました:D sortは、の結果に従って出力を並べ替え、最初の行を取得してw|wc -l、ホスト名を出力します!電話をかけることができ、自動的にログに記録する必要があります。head -1awkssh_host

于 2012-10-10T20:57:38.803 に答える
0

デスクトップからpdshコマンドを使用して、指定したマシンのセットで指定したコマンドを実行し、結果を返すことができます。このようにして、最も負荷の少ないものを見つけることができます。これによりssh、すべてのマシンを実行してを実行する必要がなくなりますw | wc -l

于 2012-10-10T20:19:55.117 に答える
0

はい。例を参照してください。

ssh me@host "ls /etc | sort" | wc -l

内部の部分""はリモートで行われます。その後の部分はローカルです。

于 2012-10-10T20:37:46.427 に答える