在日常运维工作中,快速获取系统状态信息至关重要。以下整理了常用的linux监控命令,按功能分类并附使用示例:
一、系统概览信息
| 命令 | 功能 | 示例输出 |
|---|---|---|
hostname | 查看主机名 | web-server-01 |
uname -a | 系统内核信息 | linux db01 5.4.0-131-generic #148-ubuntu smp |
cat /etc/os-release | 操作系统版本 | pretty_name="ubuntu 20.04.4 lts" |
uptime | 运行时间与负载 | 18:05:01 up 45 days, 3:21, 1 user, load average: 0.08, 0.03, 0.05 |
date | 系统时间 | thu aug 18 18:05:24 cst 2023 |
二、cpu监控
| 命令 | 功能 | 关键指标 |
|---|---|---|
lscpu | cpu架构信息 | 核心数/线程数/型号 |
top -bn1 | 实时cpu使用率 | %cpu(s): 12.3 us, 6.2 sy |
mpstat -p all | 多核cpu详细统计 | 各核心的user/sys/idle占比 |
sar -u 2 5 | 周期性cpu采样 | 平均使用率趋势 |
vmstat 1 | 综合性能监控 | r(运行队列)/b(阻塞进程) |
高级技巧:
# 按cpu使用率排序进程 ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 10
三、内存监控
| 命令 | 功能 | 关键指标 |
|---|---|---|
free -m | 内存总量与使用 | mem: 32042 29582 2460 |
vmstat -s | 详细内存统计 | active/inactive memory |
cat /proc/meminfo | 内存详细信息 | memtotal/cached/swap |
slabtop | 内核slab缓存 | 内核对象缓存使用 |
内存泄漏排查:
# 监控进程内存变化 watch -n 1 "ps -eo pid,cmd,rss --sort=-rss | head -n 5"
四、磁盘监控
| 命令 | 功能 | 关键指标 |
|---|---|---|
df -h | 磁盘空间使用 | /dev/sda1 98g 45g 48g 49% / |
iostat -dx 2 | 磁盘io性能 | await(ms)/util(%) |
iotop | 实时io进程 | 进程级读写速率 |
| `du -sh /* | sort -hr` | 目录大小排序 |
lsblk | 块设备信息 | 磁盘分区/挂载点 |
io瓶颈诊断:
# 定位高io进程 pidstat -d 1
五、网络监控
| 命令 | 功能 | 关键指标 |
|---|---|---|
ifconfig/ip addr | 网络接口信息 | ip地址/rx/tx包量 |
netstat -tulnp | 端口监听状态 | 服务端口/pid |
ss -s | 连接统计 | total: 987 (kernel 0) |
tcpdump -i eth0 | 网络包捕获 | 实时流量分析 |
iftop -p | 带宽使用排名 | 主机级流量统计 |
连接分析:
# 查看established连接数 netstat -an | grep established | wc -l
六、进程与服务监控
| 命令 | 功能 | 关键指标 |
|---|---|---|
ps aux | 进程列表 | cpu/mem使用率 |
pidstat 1 | 进程资源统计 | %cpu/%mem |
systemctl status | 服务状态 | active(running) |
journalctl -u nginx | 服务日志 | 服务运行日志 |
lsof -p <pid> | 进程打开文件 | 文件描述符 |
进程树查看:
# 显示进程树关系 pstree -ap
七、高级监控工具
实时监控面板
htop:增强版top(支持鼠标操作)glances:全能监控面板(需安装)nmon:专业性能监控工具
日志分析
# 查看包含error的最新日志
tail -f /var/log/syslog | grep -i error
# 统计404错误次数
awk '$9==404 {print $7}' access.log | sort | uniq -c | sort -nr
性能分析
perf top:cpu热点函数分析strace -p <pid>:系统调用跟踪dstat:综合性能统计工具
八、最佳实践建议
命令组合使用
# 单行获取关键指标
echo "load:$(uptime | awk -f'load average: ' '{print $2}') | mem:$(free -m | awk '/mem/{print $3"/"$2"mb"}')"
监控自动化
- 使用
cron定期收集指标 - 通过
tee同时输出到屏幕和文件 - 编写脚本格式化输出(如本文示例)
安全注意事项
- 避免在生产环境直接修改配置
- 使用
nohup执行长时间任务 - 敏感命令添加
-i交互确认
运维箴言:掌握这些命令如同获得系统"听诊器",但真正的价值在于理解数据背后的意义。建议建立自己的命令手册,定期练习形成肌肉记忆。
通过熟练使用这些命令,运维工程师可以快速诊断系统瓶颈,有效处理故障,保障业务稳定运行。记住:好的运维不是救火队员,而是通过监控提前发现隐患的守护者。
以上就是运维工程师必备:linux系统监控与故障排查的命令大全的详细内容,更多关于linux系统监控与故障排查的资料请关注代码网其它相关文章!
发表评论