서버 이름을 최상위 출력과 함께 인라인으로 만들려면 어떻게 해야 합니까?

서버 이름을 최상위 출력과 함께 인라인으로 만들려면 어떻게 해야 합니까?

시간이 지남에 따라 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

관련 정보