Appearance
系统监控
系统信息
uname - 系统信息
bash
uname # 内核名称
uname -a # 所有信息
uname -r # 内核版本
uname -v # 内核编译信息
uname -m # 硬件架构
uname -p # 处理器类型
uname -i # 硬件平台
uname -o # 操作系统hostnamectl - 主机信息
bash
hostnamectl # 显示主机信息
hostnamectl status # 显示状态
hostnamectl set-hostname newname # 设置主机名
hostnamectl set-icon-name computer # 设置图标名
hostnamectl set-chassis desktop # 设置机箱类型其他系统信息命令
bash
cat /etc/os-release # 操作系统信息
cat /proc/version # 内核版本
cat /proc/cpuinfo # CPU 信息
cat /proc/meminfo # 内存信息
lscpu # CPU 架构信息
lsmem # 内存信息
lsusb # USB 设备
lspci # PCI 设备
lsblk # 块设备
lshw # 硬件信息
dmidecode # DMI 信息(需要 root)CPU 监控
top - 进程监控
bash
top # 动态显示进程
top -d 5 # 5秒刷新
top -p 1234 # 监控指定进程
top -u username # 指定用户
top -b -n 1 # 批处理模式top 输出说明:
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si- us: 用户空间 CPU
- sy: 内核空间 CPU
- ni: 低优先级进程 CPU
- id: 空闲 CPU
- wa: 等待 I/O
- hi: 硬件中断
- si: 软件中断
- st: 虚拟化偷取时间
htop - 增强版监控
bash
htop # 启动 htop
htop -p 1234 # 监控指定进程
htop -u username # 指定用户
htop -t # 树形显示
htop -s PERCENT_CPU # 按 CPU 排序
htop -s PERCENT_MEM # 按内存排序mpstat - CPU 统计
bash
mpstat # CPU 统计
mpstat 1 # 每秒刷新
mpstat 1 5 # 刷新5次
mpstat -P ALL # 所有 CPU
mpstat -P 0 # 指定 CPUlscpu - CPU 信息
bash
lscpu # CPU 架构信息
lscpu -e # 扩展格式
lscpu -p # 解析格式CPU 信息文件
bash
cat /proc/cpuinfo # CPU 详细信息
cat /proc/cpuinfo | grep "model name" | head -1 # CPU 型号
cat /proc/cpuinfo | grep "processor" | wc -l # CPU 核心数
nproc # CPU 核心数
lscpu | grep "^CPU(s)" # CPU 核心数内存监控
free - 内存使用
bash
free # 显示内存使用
free -h # 人类可读格式
free -b # 字节
free -k # KB
free -m # MB
free -g # GB
free -t # 显示总计
free -s 1 # 每秒刷新
free -c 5 # 刷新5次free 输出说明:
total used free shared buff/cache available
Mem: 8000 2000 500 100 5500 5000
Swap: 2000 100 1900- total: 总内存
- used: 已使用
- free: 空闲
- shared: 共享内存
- buff/cache: 缓冲/缓存
- available: 可用内存
vmstat - 虚拟内存
bash
vmstat # 内存统计
vmstat 1 # 每秒刷新
vmstat 1 5 # 刷新5次
vmstat -s # 统计信息
vmstat -d # 磁盘统计
vmstat -D # 磁盘汇总vmstat 输出说明:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 100 500M 200M 2000M 0 0 5 10 50 100 1 1 98 0 0- r: 运行队列
- b: 阻塞进程
- swpd: 虚拟内存
- si: 从交换分区读入
- so: 写入交换分区
- bi: 从块设备读入
- bo: 写入块设备
- in: 中断
- cs: 上下文切换
/proc/meminfo
bash
cat /proc/meminfo # 内存详细信息
grep MemTotal /proc/meminfo # 总内存
grep MemFree /proc/meminfo # 空闲内存
grep MemAvailable /proc/meminfo # 可用内存
grep Buffers /proc/meminfo # 缓冲
grep Cached /proc/meminfo # 缓存
grep SwapTotal /proc/meminfo # 总交换
grep SwapFree /proc/meminfo # 空闲交换磁盘监控
df - 磁盘空间
bash
df # 显示磁盘使用
df -h # 人类可读格式
df -T # 显示文件系统类型
df -i # 显示 inode 使用
df -x tmpfs # 排除文件系统
df --total # 显示总计
df /path # 指定路径du - 目录大小
bash
du # 显示目录大小
du -h # 人类可读格式
du -sh /path # 显示总大小
du -h --max-depth=1 # 显示一层深度
du -ah # 显示所有文件
du -sh * # 当前目录各文件大小
du -h --exclude="*.log" # 排除文件iostat - I/O 统计
bash
iostat # I/O 统计
iostat 1 # 每秒刷新
iostat 1 5 # 刷新5次
iostat -x # 扩展信息
iostat -c # CPU 统计
iostat -d # 磁盘统计
iostat -d sda # 指定设备
iostat -p sda # 分区统计
iostat -k # KB/s
iostat -m # MB/siostat 输出说明:
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 5.00 100.00 50.00 100000 50000- tps: 每秒传输次数
- kB_read/s: 每秒读取 KB
- kB_wrtn/s: 每秒写入 KB
- kB_read: 总读取 KB
- kB_wrtn: 总写入 KB
iotop - I/O 监控
bash
iotop # I/O 监控
iotop -o # 只显示有 I/O 的进程
iotop -P # 只显示进程
iotop -p 1234 # 指定进程
iotop -u username # 指定用户
iotop -b # 批处理模式
iotop -n 5 # 刷新5次
iotop -d 2 # 2秒刷新磁盘健康
bash
smartctl -a /dev/sda # SMART 信息
smartctl -H /dev/sda # 健康状态
smartctl -t short /dev/sda # 短自检
smartctl -t long /dev/sda # 长自检网络监控
网络接口统计
bash
ifconfig # 接口信息
ip -s link # 接口统计
ip -s -s link show eth0 # 详细统计
cat /proc/net/dev # 设备统计网络连接
bash
ss -tulpn # 监听端口
ss -s # 统计信息
ss -t state established # 已建立的连接
netstat -tulpn # 监听端口
netstat -s # 协议统计
netstat -i # 接口统计网络流量
bash
iftop # 实时流量
iftop -i eth0 # 指定接口
iftop -n # 不解析主机名
iftop -N # 不解析端口
iftop -P # 显示端口
nload # 网络流量
nload eth0 # 指定接口
nethogs # 进程网络流量
nethogs eth0 # 指定接口
sar -n DEV 1 # 网络流量统计
sar -n EDEV 1 # 网络错误统计带宽测试
bash
iperf -s # 服务端
iperf -c 192.168.1.1 # 客户端
iperf -c 192.168.1.1 -t 60 # 测试60秒
iperf -c 192.168.1.1 -P 4 # 4个并行连接
iperf -c 192.168.1.1 -u # UDP 测试进程监控
ps - 进程状态
bash
ps aux # 所有进程
ps -ef # 所有进程
ps -u username # 指定用户
ps -p 1234 # 指定进程
ps -C nginx # 指定命令
ps --forest # 树形显示
ps -eo pid,ppid,cmd,%mem,%cpu # 自定义输出
ps aux --sort=-%cpu # 按 CPU 排序
ps aux --sort=-%mem # 按内存排序pidstat - 进程统计
bash
pidstat # 进程统计
pidstat 1 # 每秒刷新
pidstat -p 1234 # 指定进程
pidstat -d # 磁盘 I/O
pidstat -r # 内存使用
pidstat -u # CPU 使用
pidstat -w # 上下文切换
pidstat -t # 显示线程strace - 系统调用
bash
strace command # 跟踪命令
strace -p 1234 # 跟踪进程
strace -c command # 统计系统调用
strace -e trace=open,read command # 跟踪指定调用
strace -f command # 跟踪子进程
strace -o output.txt command # 输出到文件
strace -T command # 显示调用时间
strace -ff -o trace command # 分文件输出lsof - 打开文件
bash
lsof # 所有打开文件
lsof -p 1234 # 指定进程
lsof -u username # 指定用户
lsof -i # 网络连接
lsof -i :80 # 指定端口
lsof -i TCP # TCP 连接
lsof -i UDP # UDP 连接
lsof /path/to/file # 打开指定文件
lsof +D /path # 目录下打开的文件
lsof -c nginx # 指定命令系统负载
uptime - 系统负载
bash
uptime # 系统负载
cat /proc/loadavg # 负载信息输出说明:
12:00:00 up 10 days, 2:00, 2 users, load average: 0.00, 0.01, 0.05- load average: 1/5/15分钟平均负载
- 负载值接近 CPU 核心数时系统较忙
w - 登录用户
bash
w # 登录用户和负载
w username # 指定用户日志监控
journalctl - systemd 日志
bash
journalctl # 所有日志
journalctl -u nginx # 服务日志
journalctl -f # 实时跟踪
journalctl -n 100 # 最近100条
journalctl --since today # 今天的日志
journalctl --since "2023-12-25" # 指定日期
journalctl --since "1 hour ago" # 最近1小时
journalctl -p err # 错误级别
journalctl -b # 本次启动日志
journalctl -k # 内核日志
journalctl --disk-usage # 日志占用
journalctl --vacuum-size=100M # 限制日志大小传统日志文件
bash
tail -f /var/log/syslog # 系统日志
tail -f /var/log/messages # 系统日志
tail -f /var/log/auth.log # 认证日志
tail -f /var/log/secure # 安全日志
tail -f /var/log/kern.log # 内核日志
tail -f /var/log/dmesg # 启动日志
dmesg # 内核消息
dmesg -T # 显示时间戳
dmesg -w # 实时监控综合监控工具
glances - 综合监控
bash
glances # 启动监控
glances -w # Web 模式
glances -s # 服务器模式
glances -c 192.168.1.1 # 客户端模式
glances -t 5 # 5秒刷新
glances -q # 安静模式dstat - 综合统计
bash
dstat # 综合统计
dstat 1 # 每秒刷新
dstat -c # CPU 统计
dstat -d # 磁盘统计
dstat -n # 网络统计
dstat -m # 内存统计
dstat -p # 进程统计
dstat -s # 交换统计
dstat --top-cpu # 显示 CPU 占用最高进程
dstat --top-mem # 显示内存占用最高进程
dstat --top-io # 显示 I/O 占用最高进程
dstat -cdn # CPU、磁盘、网络sar - 系统活动报告
bash
sar # CPU 使用历史
sar 1 5 # 每秒采样,共5次
sar -u # CPU 统计
sar -r # 内存统计
sar -b # I/O 统计
sar -n DEV # 网络统计
sar -d # 磁盘统计
sar -q # 队列统计
sar -w # 上下文切换
sar -f /var/log/sa/sa01 # 指定日志文件
sar -s 10:00:00 -e 11:00:00 # 指定时间范围atop - 高级监控
bash
atop # 启动监控
atop -P PAG # 内存分页
atop -P DSK # 磁盘
atop -P NET # 网络
atop -r /var/log/atop/atop_20231225 # 读取历史性能分析
perf - 性能分析
bash
perf top # 实时性能分析
perf record -g command # 记录性能数据
perf report # 分析记录数据
perf stat command # 统计性能事件
perf list # 列出事件火焰图
bash
perf record -g -p 1234 sleep 10
perf script | stackcollapse-perf.pl | flamegraph.pl > flame.svg监控脚本示例
系统状态脚本
bash
#!/bin/bash
echo "=== System Status ==="
echo "Hostname: $(hostname)"
echo "Kernel: $(uname -r)"
echo "Uptime: $(uptime -p)"
echo ""
echo "=== CPU ==="
echo "Cores: $(nproc)"
echo "Load: $(cat /proc/loadavg)"
echo ""
echo "=== Memory ==="
free -h
echo ""
echo "=== Disk ==="
df -h | grep -E "^/dev|^Filesystem"
echo ""
echo "=== Network ==="
ip -br addr进程监控脚本
bash
#!/bin/bash
echo "=== Top 10 CPU Processes ==="
ps aux --sort=-%cpu | head -11
echo ""
echo "=== Top 10 Memory Processes ==="
ps aux --sort=-%mem | head -11
echo ""
echo "=== Top 10 I/O Processes ==="
iotop -b -n 1 -o | head -11