#!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin function cpu() { util=`vmstat | awk 'NR==3 {print (100-$15) "%"}'` iowait=`vmstat | awk 'NR==3 {print $16 "%"}'` echo "CPU - 使用率: $util , 等待磁盘IO响应使用率: $iowait" } function memory() { total=`free -m | awk 'NR==2 {printf "%.1f", $2/1024}'` used=`free -m | awk 'NR==2 {printf "%.1f", $3/1024}'` available=`free -m | awk 'NR==2 {printf "%.1f", ($2-$3)/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 } function tcp_status() { summary=$(ss -antp | awk 'NR>1 {status[$1]++}END{for(i in status) printf i ":" status[i] " , "}') echo "TCP连接状态 - $summary" } echo "-------------------------------------------CPU----------------------------------------------" cpu echo "-------------------------------------------MEMORY-------------------------------------------" memory echo "-------------------------------------------DISK---------------------------------------------" disk echo "-------------------------------------------TCP_STATUS---------------------------------------" tcp_status