0
試圖獲得某些PROD服務器的CPU利用率,並在SunOS服務器上達到某個值時收到警報。從top5.txt文件將十進制數字與其他數字進行比較的腳本
#!/usr/bin/sh
CPU=10
prstat -a 3 1 | awk '{print $1,$2,$9;}' | head -5 > top5.txt
cat top5.txt | awk '{print $3;}' | sed '1d' > re.txt
if [ `cat re.txt` -gt $CPU ];
then
echo "this is TEST"
fi
內容:從re.txt文件
cat test.txt
PID USERNAME CPU
20845 sql 2.5
25690 sql 0.3
986 splunk 0.2
5 root 0.1
內容:
這樣做以下嘗試
cat re.txt
2.5
0.3
0.2
0.1
四處錯誤:
" [: 0.3%: unknown operator"
前兩個命令正在執行並給出預期的結果,但在循環檢查條件(> 10)時,如果文件「re.txt」中的值位於十進制數字上,則無法進行比較。
請有人可以告訴一種方式來比較這些值從文件讀取。
感謝ADV ....
嗨PS,我不是腳本很專業。你能介意解釋什麼是什麼以及哪部分命令在做什麼。需要一點幫助來理解這裏。 – Kabir
@Kabir先請讓我們知道這是否有助於獲得理想的結果? –
同時將建議的命令放到shell並執行得到低於錯誤:cat thread.sh #!/ usr/bin/sh prstat -a 3 1 | awk -v cpu = 10'NR <= 5 && NR!= 1 && $ 3> cpu {print「This is Test ...」}'awk:在第1行附近出現語法錯誤 awk:在第1行附近跳出 – Kabir