サーバー名を最上位出力でインライン化するにはどうすればよいですか?

サーバー名を最上位出力でインライン化するにはどうすればよいですか?

時間が経つにつれて、CPU使用率を監視するためにtop(htopは私たちのシステムのオプションではありません)を使用することができました。ユーザーが1時間以上サーバーを100%以上使用している場合は、管理者に電子メール通知が送信されます。

必要な情報を提供するために、以下のコードを簡単に作成しました。以下でコードと結果を見ることができます。私が直面している問題は、各プロセスにサーバー名をインライン化する方法がわからないことです。それで残りの作業は大幅に単純化されます。

1 #!/bin/bash
2
3 echo "Script was run at $(date)" >> temp1
4
5 HOSTS=("list of server names")
6
7 for i in ${HOSTS[@]} ; do
8         echo $i >> temp1
9         ssh $i top -b -n 1 | tail -n +7 | awk '$9 >= 100.0' | awk '{print $2, $9, $12}' >> temp1
10 done
11

Currently this is what my script is returning. Only thing I want differently is to have the server name follow each individual process. 
serverName1 
user 187.1 MATLAB 
serverName2 
user 144.4 plasma-de+ 
user 144.4 plasma-de+ 
user 141.7 plasma-de+ 
user 138.9 mate-sett+ 
serverName3 
user 100.0 plasma-de+ 
user 100.0 plasma-de+

ベストアンサー1

この試み:

ssh $i top -b -n 1 | tail -n +7 | awk '$9 >= 100.0' | awk -v "host=$i" '{print host, $2, $9, $12}' >> temp1

おすすめ記事