系统监控脚本 #

一、CPU监控 #

bash
#!/bin/bash

get_cpu_usage() {
    # 获取CPU使用率
    local usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}')
    echo "$usage"
}

get_cpu_info() {
    echo "=== CPU信息 ==="
    echo "型号: $(lscpu | grep 'Model name' | cut -d':' -f2 | xargs)"
    echo "核心数: $(nproc)"
    echo "使用率: $(get_cpu_usage)%"
}

二、内存监控 #

bash
#!/bin/bash

get_memory_info() {
    echo "=== 内存信息 ==="
    free -h | while read -r line; do
        echo "$line"
    done
}

get_memory_usage() {
    local usage=$(free | awk '/Mem/{printf "%.1f", $3/$2*100}')
    echo "$usage"
}

三、磁盘监控 #

bash
#!/bin/bash

get_disk_info() {
    echo "=== 磁盘信息 ==="
    df -h | grep -E '^/dev'
}

get_disk_usage() {
    local mount_point="${1:-/}"
    local usage=$(df -h "$mount_point" | awk 'NR==2 {print $5}' | tr -d '%')
    echo "$usage"
}

四、完整监控脚本 #

bash
#!/bin/bash

monitor() {
    local interval="${1:-5}"
    
    while true; do
        clear
        echo "======================================"
        echo "    系统监控 - $(date '+%Y-%m-%d %H:%M:%S')"
        echo "======================================"
        echo ""
        
        # CPU
        echo "CPU使用率: $(get_cpu_usage)%"
        
        # 内存
        echo "内存使用率: $(get_memory_usage)%"
        
        # 磁盘
        echo "磁盘使用率: $(get_disk_usage /)%"
        
        # 网络
        echo "网络连接数: $(netstat -an | grep ESTABLISHED | wc -l)"
        
        echo ""
        echo "按Ctrl+C退出"
        
        sleep "$interval"
    done
}

monitor 5

下一步 #

你已经掌握了系统监控脚本,接下来让我们学习 日志分析脚本

最后更新:2026-03-27