Linux查看系统运行时间,uptime和w命令使用
前言
想知道服务器已经连续运行了多少天?现在有多少人在线?系统负载怎么样?这些问题用 uptime 和 w 两个命令就能搞定。这两个命令虽然简单,但都是运维日常最常用的,一个看运行时间和负载,一个看谁在线。本文就把这两个命令讲透。
uptime 命令
基本用法
直接输入:
uptime
输出示例:
10:30:45 up 30 days, 2:15, 1 user, load average: 0.50, 0.40, 0.30
输出详解
| 字段 | 含义 |
|---|---|
10:30:45 |
当前系统时间 |
up 30 days, 2:15 |
系统已运行30天2小时15分钟 |
1 user |
当前有1个用户登录 |
load average: 0.50, 0.40, 0.30 |
系统负载,分别是1分钟、5分钟、15分钟的平均值 |
负载怎么看
负载(load average)是衡量系统繁忙程度的指标。数值越高说明越忙。
判断标准:
- 负载数值和CPU核心数有关
- 比如4核CPU,负载4.0才算跑满
- 一般来说,负载不要超过CPU核心数的70%
- 比如4核CPU,负载在2.8以下算正常
uptime 常用参数
uptime -V
查看版本号。
uptime -h
查看帮助。
w 命令
基本用法
直接输入:
w
输出示例:
10:30:45 up 30 days, 2:15, 1 user, load average: 0.50, 0.40, 0.30
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.100 10:20 5.00s 0.05s 0.00s w
输出详解
第一行和 uptime 完全一样:系统时间、运行时间、在线用户数、负载。
下面是当前登录的用户列表:
| 列 | 含义 |
|---|---|
USER |
登录用户名 |
TTY |
终端类型(pts/0 表示远程SSH连接) |
FROM |
登录来源IP |
LOGIN@ |
登录时间 |
IDLE |
空闲时间 |
JCPU |
该终端所有进程占用的CPU时间 |
PCPU |
当前进程占用的CPU时间 |
WHAT |
当前正在运行的命令 |
w 常用参数
w -h
不显示第一行标题,只显示用户列表。
w -s
精简模式,不显示 JCPU 和 PCPU 列。
w root
只查看某个用户的登录信息。
who 命令
除了 uptime 和 w,还有个 who 命令,更简单:
who
输出:
root pts/0 2026-10-05 10:20 (192.168.1.100)
只显示谁在线、从哪来、什么时候登录的。
last 命令
想知道历史登录记录,用 last:
last
输出最近的登录记录,包括:
- 谁登录的
- 从哪个IP登录的
- 什么时候登录的
- 登录了多久
last -10
只看最近10条。
实际应用场景
场景1:服务器重启过没有
用 uptime 看运行时间,如果才几天,说明最近重启过。
uptime
场景2:谁在登录我的服务器
用 w 看当前有谁在线,来源IP是哪里。如果有不认识的IP,可能是被入侵了。
w
场景3:系统负载高不高
用 uptime 看 load average,如果负载很高,再用 top 看是哪个进程占的。
uptime
top
场景4:排查登录历史
用 last 看历史登录记录,有没有异常登录。
last
常见坑
坑1:负载高就以为CPU不够
负载高不一定是CPU的问题。负载包括所有等待CPU的进程,也包括等待I/O的进程。可能是磁盘I/O瓶颈,也可能是大量进程在排队。要结合 top 一起看。
坑2:把在线用户数看得很重要
1 user 这个数字只是当前登录的用户数,不代表系统性能。一个用户也可能把系统跑满,100个用户也可能很空闲。
坑3:last 显示的是历史记录,不是实时状态
last 是看历史登录记录的,现在谁在线要用 w 或 who。两者别搞混了。
总结
uptime 和 w 是最基础的系统监控命令:
- uptime:看系统运行时间和负载
- w:看谁在线、从哪来、在干嘛
- who:更简单的在线用户查看
- last:看历史登录记录
这几个命令都是秒出结果,排查问题的时候先跑一遍,快速了解系统基本状态。
遇到问题加QQ23979811 协助处理