2013-11-28 13 views
1

嗨我需要創建一個服務器監控,其中需要存儲正在使用的內存,進程的CPU利用率以及整體CPU利用率。 我使用top命令如何在unix中捕獲貓的結果,用於服務器監控

#!/bin/ksh 
echo " " > top.txt 

top -b -d 1 > top.txt 

var =20 

MEM = "$(cat top.txt |grep Memory | cut -c 8-12)" 

JAV = $(cat top.txt |grep java | cut -c 55-60) 

SSH = $(cat top.txt |grep ssh | cut -c 55-60) 

mailing_list="[email protected]" 

subject_line="monitring" 

if [ $mem -gt $var || $ jav -gt "10" || $ssh -gt "10"] ;then 
echo $mem 
echo $jav 
echo $ssh 

echo "there is some problem"| mailx -b "${mailing_list}" -s "${subject_line}" " " 
    fi 


exit 0 

當我執行thisa腳本我收到的是MEM JAV沒有找到華林寫了下面的腳本。

請幫我這個

我的任務是創建一個監控腳本。

在此先感謝

+0

什麼是輸出 - 'cat top.txt | grep java | cut -c 55-60' – erbdex

回答

0
  • 您的變量賦值各地=空間。刪除這些。那是什麼導致那些MEM: command not found錯誤。

  • 你說:

如果[$ MEM -gt是$ var || $ jav -gt「10」|| $ ssh -gt「10」];然後

這有很多問題。你說:

if [[ $mem -gt $var || $jav -gt "10" || $ssh -gt "10" ]]; then 
  • 也似乎混合的情況。變量名稱爲區分大小寫
+0

感謝它的工作,問題是在= sign之前的空間。 – user3045919

+0

我需要一個更多的幫助:你能幫我嗎我可以從unix的sar命令的輸出中捕獲最後一行。 – user3045919

+0

@ user3045919試試'value = $(sar ... | tail -1)' – devnull