Linux Shell查看磁盘分区,内存使用,CPU使用率
Linux Shell查看磁盘分区,内存使用,CPU使用率
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #!/bin/bash #disk_used_rate Location=/dev/xvdb Disk_Used_Rate=$(df -h | grep $Location | awk '{print $5}' ) echo "Disk Used Rate : $Disk_Used_Rate" #memory_used_rate LoadMemory=$(cat /proc/meminfo | awk '{print $2}' ) Total=$(echo $LoadMemory | awk '{print $1}' ) Free1=$(echo $LoadMemory | awk '{print $2}' ) Free2=$(echo $LoadMemory | awk '{print $3}' ) Free3=$(echo $LoadMemory | awk '{print $4}' ) Used=`expr $Total - $Free1 - $Free2 - $Free3` Used_Rate=`expr $Used/$Total* 100 ` Memory_Used_Rate=`expr $Used_Rate/ 1 ` echo "Memory Used Rate : $Memory_Used_Rate%" interval= 3 cpu_num=`cat /proc/stat | grep cpu[ 0 - 9 ] -c` start_idle=() start_total=() cpu_rate=() for ((i= 0 ;i<${cpu_num};i++)) { start=$(cat /proc/stat | grep "cpu$i" | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}' ) start_idle[$i]=$(echo ${start} | awk '{print $4}' ) start_total[$i]=$(echo ${start} | awk '{printf "%.f",$1+$2+$3+$4+$5+$6+$7}' ) } start=$(cat /proc/stat | grep "cpu " | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}' ) start_idle[${cpu_num}]=$(echo ${start} | awk '{print $4}' ) start_total[${cpu_num}]=$(echo ${start} | awk '{printf "%.f",$1+$2+$3+$4+$5+$6+$7}' ) sleep ${interval} for ((i= 0 ;i<${cpu_num};i++)) { end=$(cat /proc/stat | grep "cpu$i" | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}' ) end_idle=$(echo ${end} | awk '{print $4}' ) end_total=$(echo ${end} | awk '{printf "%.f",$1+$2+$3+$4+$5+$6+$7}' ) idle=`expr ${end_idle} - ${start_idle[$i]}` total=`expr ${end_total} - ${start_total[$i]}` idle_normal=`expr ${idle} \* 100 ` cpu_usage=`expr ${idle_normal} / ${total}` cpu_rate[$i]=`expr 100 - ${cpu_usage}` echo "CPU$i Rate : ${cpu_rate[$i]}%" } end=$(cat /proc/stat | grep "cpu " | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}' ) end_idle=$(echo ${end} | awk '{print $4}' ) end_total=$(echo ${end} | awk '{printf "%.f",$1+$2+$3+$4+$5+$6+$7}' ) idle=`expr ${end_idle} - ${start_idle[$i]}` total=`expr ${end_total} - ${start_total[$i]}` idle_normal=`expr ${idle} \* 100 ` cpu_usage=`expr ${idle_normal} / ${total}` cpu_rate[${cpu_num}]=`expr 100 - ${cpu_usage}` echo "Average CPU Rate : ${cpu_rate[${cpu_num}]}%" echo -e "\nProccess of CPU used rate > 100%" ps -aux | awk '$3 > 1{print $2,$3,$11}' |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步