在Linux服务器管理中,查询服务器状态是日常运维的核心工作,涉及系统信息、性能指标、网络状态、进程运行等多维度内容,通过命令行工具,管理员可高效获取实时数据,快速定位问题,以下从不同场景详细介绍常用查询方法及命令。
基本信息查询
服务器的基本信息包括操作系统版本、硬件配置(CPU、内存、磁盘等),是后续性能调优和故障排查的基础。
系统版本与内核信息
uname -a
:显示所有系统信息(内核版本、主机名、系统架构等)。
示例:Linux server01 5.4.0-91-generic #102-Ubuntu SMP Thu Nov 24 18:09:58 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/os-release
:查看操作系统发行版信息(如Ubuntu、CentOS版本)。
示例:Ubuntu 20.04.3 LTS
lscpu
:详细显示CPU架构信息(型号、核心数、线程数等)。
硬件资源状态
- 内存使用:
free -h
(以人类可读格式显示已用/可用/缓存内存,-h
自动选择单位如MB/GB)。 - 磁盘信息:
df -h
:查看各分区的磁盘使用率(Filesystem
挂载点、Use%
、剩余空间)。lsblk
:列出块设备信息(磁盘名称、分区、大小、挂载点)。
- 硬件设备详情:
lshw -short
(显示CPU、内存、磁盘等硬件概览,需安装lshw
工具)。
性能监控查询
性能监控是服务器运维的重点,需关注CPU、内存、磁盘I/O、网络等核心指标。
CPU与内存负载
top
:动态展示进程级资源占用,按1
可查看各核心CPU使用率,Shift+M
按内存排序。htop
(需安装):top
的增强版,支持彩色显示、进程树、鼠标操作等交互功能。vmstat 1 5
:每秒采样1次,连续5次,显示进程(procs
)、内存(memory
)、CPU(cpu
)统计信息,如us
(用户态CPU)、sy
(内核态CPU)、id
(空闲)。
磁盘I/O与网络流量
iostat -xz 1
:显示磁盘I/O统计(%util
磁盘利用率,await
平均等待时间),-x
扩展信息。iotop
(需安装):实时显示各进程的磁盘读写速度,类似top
的交互操作。iftop
(需安装):监控网络实时流量,显示各IP的上下行带宽占用。
网络状态查询
网络问题排查需关注端口监听、连接状态、路由表等信息。
端口与连接
netstat -tuln
:显示所有监听(-l
)的TCP(-t
)/UDP(-u
)端口,不解析域名(-n
)。ss -tulnp
:netstat
的替代工具,速度更快,-p
显示占用端口的进程ID(PID)。lsof -i:端口号
:查看指定端口被哪个进程占用,如lsof -i:80
。
路由与网络配置
ip route show
:查看路由表,显示目标网段的下一跳地址。ip addr
:显示网络接口IP地址、子网掩码、状态(如UP
/DOWN
)。
进程与日志查询
进程管理
ps -ef
:显示所有进程的详细信息(UID、PID、PPID、命令行)。pgrep 进程名
:根据进程名查找PID,如pgrep nginx
。kill -9 PID
:强制终止进程(-9
为信号码,慎用)。
日志分析
- 系统日志:
cat /var/log/syslog
(Ubuntu)或cat /var/log/messages
(CentOS),结合grep
过滤关键词,如grep "error" /var/log/syslog
。 - 应用日志:
tail -f /var/log/nginx/access.log
(实时查看Nginx访问日志),journalctl -u 服务名
(查看systemd服务日志,如journalctl -u nginx
)。
常用命令速查表
查询场景 | 常用命令 | 核心用途 |
---|---|---|
系统版本 | uname -a , cat /etc/os-release |
获取内核版本、发行版信息 |
CPU信息 | lscpu , top -p 1 |
查看CPU型号、核心数、实时占用率 |
内存使用 | free -h , vmstat |
显示已用/可用内存、虚拟内存统计 |
磁盘使用率 | df -h , du -sh 目录 |
查看分区使用情况、目录大小 |
监听端口 | ss -tulnp , netstat -tuln |
检查端口是否开放及占用进程 |
网络流量 | iftop , nethogs |
实时监控带宽占用及进程级流量 |
进程列表 | ps -ef , htop |
查看进程状态、资源占用及PID |
系统日志 | journalctl , grep /var/log/syslog |
过滤错误、警告等关键日志信息 |
相关问答FAQs
Q1: 如何实时查看CPU和内存的占用情况,并定位高负载进程?
A: 可使用htop
命令(交互式界面直观显示CPU/内存占用,按P
按CPU排序、M
按内存排序),或top
命令(按Shift+M
内存排序、Shift+P
CPU排序),若需非实时查看,可通过vmstat 1 5
观察CPU系统/用户态时间占比,结合ps aux --sort=-%cpu
按CPU占用率排序进程。
Q2: 如何快速定位某个端口(如8080端口)被哪个进程占用?
A: 使用ss -tulnp | grep 8080
或netstat -tulnp | grep 8080
,结果中会显示端口号及对应的PID和进程名;也可通过lsof -i:8080
直接获取占用端口的进程详细信息,包括PID、用户、打开的文件等。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/16921.html