#!/bin/bash
# CPU 使用情况函数
function cpu() {
NUM=1
while [ $NUM -le 3 ]; do
util=$(vmstat | awk '{if(NR==3)print 100-$15"%"}')
user=$(vmstat | awk '{if(NR==3)print $13"%"}')
sys=$(vmstat | awk '{if(NR==3)print $14"%"}')
iowait=$(vmstat | awk '{if(NR==3)print $16"%"}')
echo "CPU - 使用率 $util , 等待磁盘IO响应使用率 $iowait"
let NUM++
sleep 1
done
}
# 内存使用情况函数
function memory() {
total=$(free -m | awk '{if(NR==2)printf "%.1f",$2/1024}')
used=$(free -m | awk '{if(NR==2) printf "%.1f",($2-$NF)/1024}')
available=$(free -m | awk '{if(NR==2) printf "%.1f",$NF/1024}')
echo "内存 - 总大小 ${total}G , 使用: ${used}G , 剩余: ${available}G"
}
# 硬盘使用情况函数
function disk() {
fs=$(df -h | awk '/^\/dev/{print $1}')
for p in $fs; do
mounted=$(df -h | awk '$1=="'$p'"{print $NF}')
size=$(df -h | awk '$1=="'$p'"{print $2}')
used=$(df -h | awk '$1=="'$p'"{print $3}')
used_percent=$(df -h | awk '$1=="'$p'"{print $5}')
echo "硬盘 - 挂载点 $mounted , 总大小 $size , 使用: $used , 使用率 $used_percent"
done
}
# TCP连接状态函数
function tcp_status() {
summary=$(ss -antp | awk '{status[$1]++}END{for(i in status) printf i":"status[i]" "}')
echo "TCP连接状态 - $summary"
}
# 调用函数
cpu
memory
disk
tcp_status