shell 檢查系統資源使用情況

該程序有三部分組成,第一部分對命令df 及ps 輸出結果進行預處理,提出需要的字段,第二部分用於檢查磁盤空間使用情況,第三部分用於檢查cpu 及內存的使用情況。

#/bin/bash       //表示調用執行腳本程序

#filename:xitong    //表示命名腳本名稱

######preprocess#######    //注視,說明一下是預處理,

df>dfmesg   //表示將df執行的命令結果保存到dfmesg中

pr -e dfmesg | awk '{stuff}'  //表示將文件dfmesg 中的所有TAB保存到文件dfmesg.

sed '/1k-/d' dfmesg > dfmesg_noheader   //表示刪除dfmesg文件中包含“1k”的行,保存到文件dfmesg-noheader 中

ps -aux | more > cpumemmesg  //表示將系統的所有進程信息保存到cpumemmesg中

pr -e cpumemmesg | awk '{stuff}'  //表示將文件中所有TAB裝換爲空格

sed '/USER/d' cpumemmesg > cpumemmesg_noh  //表示刪除文件中/USER/d的行,且將刪除後的數據保存到cpumemmesg_nod 文件中。

######check system Hd#######     //表示檢測磁盤空間使用情況

while read LINE1  //循環結構語句,

do  //while循環中do

DISK=$LINE1  //定義變量DISK,且賦值變量LINE 1 的值,

echo $DISK>df_item  //將變量的DISK的值保存到文件df item中,

DF=`awk  ‘BEGIN { FS=“ ” ;} { print $5 ; }’ df_item `   //表示將df-item文件中以空格爲分隔符的第5列內容保存到DF 中,其中語句使用了反引號,其中把df執行結果第5列中的信息保存到df_item 中,

echo $DF>df_field   //用於將變量Df的值保存到文件df-field中

DD='awk 'BEGIN { FS="%";} {pint $l }' df_field `  //表示將分隔符中的第一列保存到變量dd 中,其中使用反引號,表示從文件每個首字母進行處理,

DINTER=$(( $DD+0 ))  //用於將字符型變量DD轉換爲數字型變量,該行的代碼實質是將變量dd數字與零相加,從而轉換爲數字型變量。

if [ $? -eq 0 ]; then   //if語句,用於判斷上次命令是否正確執行。

if [ $DINTER -gt 50 ]; then //判斷DINTER的值是否大於等於50,當大於等於50 時說明磁盤空間佔用量超出,應進行記錄

echo $DISK>>df_report   //用於將變量DISK的值附加保存到df report.

else   //if結構語句else,

echo "THis system hava enoughHD">>df_report  //用於將字符串顯示出來。

fi   //if結構結束,

else

echo  "check system HD Error "  //用於顯示輸出

fi

done<drmesg_noheader  //其中表示循環體結束,表示從drmesg-noheader 讀取消息。

######check system cpu#######  //檢查cpu的使用情況。

while read LINE2   //循環控制語句,

do   //while 循環語句中do

CPUMEM=$LINE2   //表示將變量liNE2 的值賦值給

echo $CPUMEM>ps_item   //表示將變量cpumem的值保存到文件ps-item 中。

CPUMESG=`awk 'BEGIN { FS =""; } {print $3; } '  ps _item ` //表示將文件中以空格爲分隔符的第3 列保存變量中,其中語句使用了反引號。實質意思是說將文件中第3列提取出來保存到變量CPUMESG中。

 if [ $CPUMESG ! = "0.0"  -o $MEMMESG != "0.0"] ; then  //語句爲if 。。。then fi 結構語句,判斷變量 是否爲 “0.0“,或者不等於‘0.0“ ,

echo $CPUMEM>ps_report    //表示將變量的值附加保存到文件ps report 裏,

fi   //循環結構語句結束

done  < cpumemmesg_noheader   //其中"匹配"第30 行while 語句結構。表示循環體結束。

 注:有些腳本中提到的文件,需要自己建立,纔可以運行。

本腳本環境可能適合於你,希望在你運行錢在改進一下,進行學習。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章