linux常用诊断命令
linux常用诊断命令详细介绍
在 Linux 系统中,常用的诊断命令涵盖系统资源监控、网络调试、磁盘检查、进程管理等多个方面。以下是分类整理的常用命令及说明:
一、系统资源监控
1.
CPU / 内存监控
top
实时显示系统进程的资源占用情况(CPU、内存、进程状态等),支持交互操作(如按P按 CPU 排序,按M按内存排序)。
扩展:htop(更直观的交互式界面,支持鼠标操作)、atop(更详细的资源统计)。ps
静态查看进程状态,常用选项:
bashauxfree
查看内存使用情况(总内存、已用、空闲、缓冲区等),配合-h以人类可读格式显示:
bash替代:直接读取
/proc/meminfo获取更详细信息。vmstat
监控虚拟内存、CPU 使用率、上下文切换等系统整体性能:
bash
2.
磁盘 / 文件系统
df
查看磁盘分区的空间使用情况:
bashdu
查看目录或文件的磁盘占用大小:
bash/path/to/directory--max-depth
dmesg
显示内核环形缓冲区日志,用于硬件检测或驱动问题排查:
basherrorsmartctl
检测硬盘 SMART 状态(需安装smartmontools包):
bashsmartctl /dev/sda
二、网络诊断
1.
基础网络连通性
ping
测试网络主机是否可达:
bash.1.1traceroute(或tracepath)
追踪数据包到目标主机的路由路径:
bashexample.com
2.
网络端口与连接
netstat
显示网络连接、路由表、网络接口统计等信息,常用选项:
bash替代:
ss(更高效,推荐使用),例如:
bashssnmap
网络扫描工具,用于端口扫描、主机发现等:
bashnmap -1000 .1.0/24
3.
网络流量监控
iftop
实时监控网络接口流量(需安装):
bashiftop eth0nethogs
按进程统计网络流量(需安装):
bashnethogs eth0
三、进程与文件
lsof
列出打开的文件和进程关联信息(常用于排查端口占用、文件句柄泄漏):
bash/path/to/file
strace
跟踪进程的系统调用和信号,用于调试程序错误或性能问题:
bashkill与pkill
终止进程:
bash
四、日志与诊断
journalctl(systemd 日志)
查看系统日志(替代传统/var/log/messages等文件):
bashjournalctljournalctl
tail
实时查看日志文件(如 Nginx、Apache 日志):
bash/var/log/nginx/access.logfsck
检查并修复文件系统错误(需在非挂载状态下执行):
bash/dev/sda1
五、性能分析
iostat
监控磁盘 I/O 性能(需安装sysstat包):
bashiostatsar
系统活动报告工具,用于长期性能数据收集(需sysstat):
bashsarhtop
增强版进程监控工具,支持树状结构、实时资源占用可视化:
bash
六、其他实用工具
uname
查看系统内核信息:
bashuptime
查看系统运行时间、负载平均值:
bashlshw或hardinfo
查看硬件信息(需安装):
bashlshw
总结
- 系统资源:
top/htop、free、df、vmstat - 网络调试:
ping、traceroute、ss、nmap - 进程管理:
ps、lsof、strace、kill - 日志与磁盘:
journalctl、tail、fsck、smartctl - 性能分析:
iostat、sar、nethogs
根据具体问题(如 CPU 过载、网络延迟、磁盘故障等),选择对应的工具组合使用,配合日志分析和进程追踪,可高效定位系统故障。