Linux系统自带了多种监控工具,以下是主要工具的使用方法:
一、实时监控工具(无需安装)
1. top - 进程监控
# 直接运行top# 常用操作# P - 按CPU使用率排序# M - 按内存使用率排序# k - 终止进程# q - 退出# 1 - 显示所有CPU核心
# Ubuntu/Debian安装sudo apt updatesudo apt install htop# RHEL/Rocky/CentOS安装dnf install epel-releasesudo dnf install htop # 或 yum install htop# 运行htop
# 每2秒刷新一次vmstat 2# 查看10次后停止vmstat 2 10
# 安装(通常已包含在sysstat包中)sudo apt install sysstat # Ubuntu/Debiansudo dnf install sysstat # RHEL/Rocky# 每2秒显示一次iostat 2# 显示详细信息iostat -x 2
# 以人类可读格式显示free -h# 每2秒刷新watch -n 2 free -h
# 查看磁盘使用情况df -h# 查看inode使用情况df -i
# 查看所有TCP连接netstat -tunlp# 使用ss(更现代的替代品)ss -tunlp# 查看网络统计netstat -s
# 安装必要工具
# 安装必要工具watch -n 2 "echo '=== CPU ===' && top -bn1 | head -20 && echo '' && echo '=== 内存 ===' && free -h && echo '' && echo '=== 磁盘 ===' && df -h"
# 终端1: CPU和进程htop# 终端2: 磁盘I/Oiostat -x 2# 终端3: 网络连接watch -n 2 'ss -tunlp'# 终端4: 系统日志journalctl -f
1. top # 查看CPU和内存2. iostat -x 1 # 检查磁盘I/O3. sar -n DEV 1 # 检查网络流量4. dmesg | tail # 查看系统错误
free -hps aux --sort=-%mem | head -10cat /proc/meminfo
df -hdu -sh /* | sort -hrlsof | grep deleted
# 创建监控脚本sudo nano /usr/local/bin/system-monitor.sh
#!/bin/bashecho "=== 系统监控报告 $(date) ==="echo ""echo "--- CPU使用率 ---"top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print "CPU使用率: " 100 - $1"%"}'echo ""echo "--- 内存使用 ---"free -h | grep Mem | awk '{print "总内存: "$2" | 已用: "$3" | 可用: "$7}'echo ""echo "--- 磁盘使用 ---"df -h | grep -E '^/dev/' | awk '{print $1": "$5" 已用"}'echo ""echo "--- 网络连接数 ---"echo "TCP连接数: $(ss -t | wc -l)"echo "ESTABLISHED: $(ss -t state established | wc -l)"echo ""echo "--- 负载平均 ---"uptime | awk -F'load average:' '{print $2}'
sudo chmod +x /usr/local/bin/system-monitor.sh/usr/local/bin/system-monitor.sh
设置定时监控(cron)
# 编辑crontabcrontab -e# 添加每5分钟执行一次,结果写入日志 这是示例根据自己的实际需求来定*/5 * * * * /usr/local/bin/system-monitor.sh >> /var/log/system-monitor.log 2>&1