直接放代码了,可以直接拿去用也可以用于shell学习
#!/bin/bash
#Result_file=/tmp/system_tmp/systeminfo.txt
#[ -f $Result_file ] || mkdir /tmp/system_tmp/
#> $Result_file
Disk_judge=75
Cpu_judge=`cat /proc/cpuinfo | grep "processor"| wc -l |awk '{print $1*"0.50"}'`
Mem_judge=0.80
Interval(){
if [ $1 = a ];then
echo "********************** $2 **********************"
elif [ $1 = b ];then
echo "-----------------------------"
else
echo "-----------------------------"
fi
}
Disk_check(){
Result="PASS"
Disk_use=`df -hP|grep -Ev 'Filesystem|tmpfs|boot'|awk '{print $5}'|xargs | sed 's/ /,/g'|sed 's/%//g'`
# 将Disk_use中的','变成空格,然后创建数组
array=(${Disk_use//\,/ })
for i in "${!array[@]}"; do
if [ ${array[i]} -gt $Disk_judge ]; then
Result=FAILED
fi
done
Interval a "DISK INFO"
echo "Disk_use:$Disk_use%"
df -h
Interval b
echo "Check_Result:$Result"
Interval b
}
Cpu_check(){
Result="PASS"
Load_average=`uptime|awk -F "average:" '{print$2}'`
array=(${Load_average//\,/})
for i in "${!array[@]}";do
compare=`awk -v num1=${array[i]} -v num2=$Cpu_judge 'BEGIN{print(num1>num2)?"0":"1"}'`
if [ $compare -eq 0 ];then
Result=FAILED
fi
done
Interval a "CPU INFO"
echo "load_average:$Load_average"
Interval b
echo "Check_Result:$Result"
Interval b
}
Mem_check(){
Result="PASS"
Mem_use=`free -m|grep Mem|awk '{printf ("%.2f\n",($2-$4-$6)/$2)}'`
compare=`awk -v num1=$Mem_use -v num2=$Mem_judge 'BEGIN{print(num1>num2)?"0":"1"}'`
if [ $compare -eq 0 ]; then
Result=FAILED
fi
Interval a "Memory INFO"
echo "Mem_use:$Mem_use"
free -m
Interval b
echo "Check_Result:$Result"
Interval b
}
Cpu_check
Disk_check
Mem_check
注意:文件从windows上传至linux系统,用vim -b查看文件,如果发现文件每行后面都有’’*M,直接用sed命令: sed -i ‘s/\r//g’