1、查看服务器利用率
# CPU 60% command:top(us+sy<60) vmstat
# 内存 利用率 free -m(mem swap虚拟内存,临时缓冲)
# 硬盘 利用率 df -h
# TCP连接状态 netstat -antp
function cpu() {
# NR==3 取第三列
util=$(vmstat | awk '{if(NR==3)print $13+$14'})
iowait=$(vmstat | awk '{if(NR==3)print $16'})
echo "CPU-使用率:${util}%, 等待磁盘IO响应使用率:${iowait}%"
}
function memory{
total=$(free -m | awk '{if(NR==2)print "%.1f", $2/1024}')
used=$(free -m | awk '{if(NR==2)print "%.1f", ($2-$NF)/1024}')
available=$(free -m | awk '{if(NR==2)print "%.1f", $NF/1024}')
echo "内存-总大小:${total}G, 已使用:${used}, 剩余:${available}G"
}
disk() {
# /^ 开头 \/转义
fs=$(df -h| awk '/^\/dev/{print $1}')
for p in $fs;do
mounted=$(df -h|awk -v p=$p '$1==p{print $NF}'
size=$(df -h|awk -v p=$p '$1==p{print $2}'
used=$(df -h|awk -v p=$p '$1==p{print $3}'
used_percent=$(df -h|awk -v p=$p '$1==p{print $5}'
echo "硬盘-挂载点:$mounted,总大小:$sizze,已使用:$used,使用率:$used_percent"
done
}
tcp_status(){
summary=$(netstat -antp | awk '{a[$6]++}END{for(i in a)printf i":"a[i]" "}')
echo "TCP连接状态- $summary"
}
2、找出占用CPU/内存过高的进程
在这里插入代码片
【shell脚本实践】(一)
【Shell编程】-基础(一)
【shell编程】父子shell和特殊变量
【shell编程】-条件判断
【shell编程】特殊命令用法