运维脚本------一键查询服务器利用率
# 一键查看服务器利用率 # 1、CPU利用率 60% # 命令 top,vmstat # 2、内存 利用率 #命令 free -m # 3、 监控磁盘的利用率 #命令 df -Th # 4、tcp连接状态 侧面反映并发情况 #命令 netstat -antp #! /bin/bash function cpu(){ #NR表示行数,$13+$14表示第十三列加第14列,awk是一个以行列进行处理数据的工具 util=$(vmstat |awk '{if(NR==3)print $13+$14}') iowait=$(vmstat |awk '{if(NR==3)print $16}') echo "CPU - 使用率:${util}%,等待磁盘IO响应率:${iowait}%" } function memory(){ #取第二行第二列数据 P{#printf "1.%f",$2/1024}'格式化输出保留一位小数 total=$(free -m |awk '{if(NR==2)printf "%.1f",$2/1024}') used=$(free -m |awk '{if(NR==2)printf "%.1f",($2-$NF)/1024}') availabel=$(free -m |awk '{if(NR==2)printf "%1f",$NF/1024}') echo "内存 -总大小:${total}G,已使用:${used}G,剩余:${availabel}G" } disk(){ fs=$(df -h|awk '/^\/dev/{prin $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,总大小:$size,已使用:$used,使用率:$used_percent" done } tcp_status(){ summary=$(netstat -antp |awk '{a[$6]++}END{for(i in a)printf i":"a[i]" "}') echo "TCP - 连接状态:$summary" } # 调用函数 cpu memory disk tcp_status