在Linux服务器运维中,掌握查看服务器状态的方法是基础且关键的技能,无论是日常监控还是故障排查,都需要通过命令行工具快速获取服务器的硬件、系统、网络、进程等多维度信息,以下从硬件资源、系统负载、网络状态、进程管理、用户活动及日志六个核心场景,详细说明常用查看命令及输出解读。
硬件信息查看
服务器的硬件配置是性能评估的基础,需重点关注CPU、内存、磁盘及设备信息。
- CPU信息:使用
lscpu
命令可查看CPU架构、核心数、线程数、主频等,例如输出包含“Architecture: x86_64”、“CPU(s): 8”(逻辑核心数)、“Core(s) per socket: 4”(每核物理核心)、“Thread(s) per core: 2”(每核线程数),直观展示CPU计算能力。 - 内存使用:
free -h
以人类可读格式(如GB、MB)显示内存总量、已用、空闲、缓冲/缓存及可用内存,available”列更接近实际可分配内存,需关注“used”是否接近“total”,避免内存溢出。 - 磁盘空间:
df -h
按挂载点显示磁盘分区总容量、已用、可用及使用率,/dev/sda1 50G 20G 30G 40%”表示根分区使用40%,若使用率超过90%需及时清理;lsblk
则以树状结构展示磁盘分区及挂载关系,包含“NAME”“SIZE”“MOUNTPOINT”等字段。 - 硬件设备:
lspci
查看PCI设备(如网卡、显卡),lsusb
查看USB设备,dmidecode
可获取更详细的硬件信息(如主板型号、BIOS版本),需root权限。
系统资源监控
实时监控CPU、内存及负载,判断服务器是否过载。
- 进程级资源:
top
是动态监控工具,默认每3秒刷新,按%CPU
列排序可定位高CPU占用进程(如“%CPU 80.0 nginx”);按M
键切换按内存排序,关注%MEM
列。htop
是top
的增强版,支持颜色区分、树状进程展示,操作更直观(如F9
终止进程)。 - 系统负载:
uptime
显示当前时间、系统运行时长及1分钟、5分钟、15分钟平均负载(如“load average: 0.5, 0.8, 1.2”),负载值应小于CPU核心数(如8核服务器负载≤8),若持续超过需排查异常进程。 - 虚拟内存统计:
vmstat 1
每秒输出一次内存、进程、I/O等统计,“si”(swap进入)、“so”(swap交换)为0表示未使用swap,若持续升高说明内存不足。
网络状态查看
网络是服务器对外服务的通道,需关注接口、端口及连通性。
- 网络接口:
ip a
显示网络接口IP、MAC地址及状态(如“eth0: inet 192.168.1.100/24 brd 192.168.1.255 scope global”),ifconfig
(需安装net-tools
)为传统工具,功能类似。 - 端口监听:
ss -tuln
查看TCP(-t
)、UDP(-u
)监听端口(-l
)及地址(-n
不解析域名),LISTEN 0 128 *:80”表示监听所有80端口;netstat -tuln
为替代工具,效率略低。 - 连通性测试:
ping baidu.com
测试与目标主机网络连通性(ICMP协议),traceroute 8.8.8.8
显示路由路径及延迟,mtr
结合了ping
和traceroute
,持续跟踪网络质量。
进程管理
通过进程信息定位异常服务或资源占用问题。
- 进程快照:
ps aux
显示所有用户进程的详细信息,“USER”为进程所有者,“PID”为进程ID,“%CPU”“%MEM”为资源占用,“COMMAND为启动命令,例如
ps aux | grep nginx`可筛选nginx相关进程。 - 进程筛选:
pgrep nginx
直接返回nginx进程的PID,pgrep -u username
筛选指定用户进程,结合kill -9 PID
可强制终止进程(慎用)。
用户活动监控
排查非法登录或异常用户操作。
- 当前登录用户:
who
显示登录用户、终端、登录时间(如“username pts/0 2023-10-01 10:30 (192.168.1.50)”),w
更详细,包含用户当前执行的进程及系统负载。 - 登录历史:
last
显示最近登录记录,包括用户、终端、IP、登录时长,lastb
记录失败登录尝试(需root权限),可发现暴力破解风险。
日志查看
日志是故障排查的核心依据,需重点关注系统、服务及安全日志。
- 系统日志:
tail -f /var/log/syslog
实时跟踪系统日志(Ubuntu/Debian),/var/log/messages
(CentOS/RHEL),包含内核、服务启动等信息。 - 服务日志:
journalctl -u nginx.service -f
查看nginx服务日志(systemd系统),journalctl -xe
显示详细错误信息,支持按时间(--since "2023-10-01"
)、优先级(-p err
)过滤。
核心命令速查表
场景 | 常用命令 | 主要作用 |
---|---|---|
硬件信息 | lscpu free -h df -h lsblk |
查看CPU、内存、磁盘、分区信息 |
系统资源 | top htop uptime vmstat 1 |
监控CPU、内存、负载及虚拟内存 |
网络状态 | ip a ss -tuln ping traceroute |
查看网络接口、端口、连通性及路由 |
进程管理 | ps aux pgrep kill |
查看、筛选、终止进程 |
用户活动 | who w last lastb |
查看当前登录、历史记录及失败尝试 |
日志查看 | tail -f journalctl |
实时跟踪、过滤系统及服务日志 |
FAQs
Q1:如何快速定位占用CPU最高的进程?
A:使用top -o %CPU
(按CPU使用率降序排列)或ps aux --sort=-%CPU | head -n 10
(显示前10个高CPU进程),关注%CPU
列和COMMAND
列,若为异常进程(如挖矿程序),可用kill -9 PID
强制终止。
Q2:如何查看Linux服务器的实时网络流量?
A:使用iftop
(需安装)实时显示各进程的网络带宽占用,按IP排序;或nethogs
按进程查看流量;若无工具,可通过cat /proc/net/dev
查看网络接口收发字节数,结合脚本计算实时流量。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/35168.html