# CPU 占用
轮询 COLUMNS=200 TERM=dumb top -1 -n 1 -b
1 | %Cpu0 : 27.8 us, 33.3 sy, 0.0 ni, 38.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st |
- % Cpu0: 表示这是关于 CPU 核心 0 的统计信息。如果你的系统有多个核心(例如,% Cpu0, % Cpu1, % Cpu2 等),并且你使用了显示单核心统计的选项(如之前的 -1),就会看到类似的针对每个核心的行。如果没有使用该选项或者只显示了一个 % Cpu (s) 的总览行,那么这些统计数据就是所有核心的平均值。
- us: user (us)。表示 CPU 在用户空间运行非优先级的进程所占用的时间百分比。这通常是你的应用程序(比如浏览器、文本编辑器、自定义脚本等)运行的时间。在这个例子中,CPU 0 有 27.8% 的时间在跑用户进程。
- sy: system (sy)。表示 CPU 在内核空间运行进程所占用的时间百分比。这包括执行系统调用、处理内核任务等。在这个例子中,CPU 0 有 33.3% 的时间在跑内核任务。
- ni: nice (ni)。表示 CPU 在用户空间运行已经被赋予了非标准优先级(通过 nice 或 renice 命令调整)的进程所占用的时间百分比。这个例子中是 0.0%,表示没有运行或没有花时间在运行被调整过优先级的用户进程。
- id: idle (id)。表示 CPU 处于空闲状态的时间百分比。CPU 没有在执行任何任务。这个例子中,CPU 0 有 38.9% 的时间是空闲的。
- wa: iowait (wa)。表示 CPU 在等待 I/O 操作完成所花费的时间百分比。例如,当一个进程需要读写磁盘,而磁盘很慢时,CPU 可能会进入等待状态。CPU 虽然空闲,但它是在等待外部设备。这个例子中是 0.0%,表示 CPU 0 没有因为等待 I/O 而空闲。
- hi: hardware interrupt (hi)。表示 CPU 在处理硬件中断所花费的时间百分比。硬件中断由硬件设备(如网卡、硬盘控制器)发出。这个例子中是 0.0%。
- si: software interrupt (si)。表示 CPU 在处理软件中断(也称为软中断或延迟过程调用 - DPC)所花费的时间百分比。这些通常与内核子系统有关,比如处理网络数据包的下半部分。这个例子中是 0.0%。
- st: steal (st)。这个指标主要出现在虚拟化环境中(如 KVM, Xen)。它表示 CPU 的计算时间被宿主机(hypervisor)“偷走” 去执行其他任务(例如,服务其他虚拟机)所占用的百分比。如果你的系统是物理机,这个值通常是 0.0%。这个例子中是 0.0%,可能表示这不是一个虚拟化环境,或者宿主机没有 “偷” 这个核心的时间。
占用率的计算方式是:
1 | 占用率 = (us + sy + ni) / (us + sy + ni + id + wa + hi + si + st) * 100% |
在这个例子中:
1 | 占用率 = (27.8 + 33.3 + 0.0) / (27.8 + 33.3 + 0.0 + 38.9 + 0.0 + 0.0 + 0.0 + 0.0) * 100% |
# 获取主板、CPU 等型号
1 | dmidecode |
1 | dmidecode -t processor |
# 获取挂载的硬盘
1 | lsblk |
1 | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS |
# 内存占用
1 | free |
1 | total used free shared buff/cache available |
Mem 行 (物理内存):
- total: 系统总的物理内存大小。
- used: 当前被各种进程和服务正在使用的内存总量(包括应用程序、内核、缓冲区和缓存的总和)。
- free: 完全没有被使用的物理内存。
- shared: 被进程共享使用的内存,通常由
tmpfs或进程间通信使用。 - buff/cache: 被内核用于缓冲区和页面缓存的内存。这些内存是为了提高系统性能(如文件读写速度)而使用的。重要提示: 这部分内存虽然被标记为 “使用”,但它是可以随时被应用程序回收利用的。当应用程序需要更多内存时,内核会自动减少 buff/cache 的大小来释放内存给应用程序使用。
- available: 这是估算的应用程序可以不经过交换过程(swapping)而直接获得的内存量。它是 free 内存加上 buff/cache 中可回收的部分。通常,available 是衡量当前系统有多少内存可以用于启动新应用或满足现有应用内存需求的一个更好指标,而不是看 free。
Swap 行 (交换空间):
- total: 总的交换空间大小。
- used: 正在使用的交换空间大小。
- free: 空闲的交换空间大小。交换空间是硬盘上的一块区域,当物理内存不足时,系统会将不常用的内存页写入交换空间。
# 获取网卡信息
1 | ip l |
1 | ip l |
# 获取网卡流量
轮询 ip -s link show
1 | 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 |
- RX packets: Receiver packets(接收的数据包)。表示该网络接口自启动(或上次统计重置)以来,成功接收到的网络数据包总数。
- TX packets: Transmitter packets(发送的数据包)。表示该网络接口自启动以来,成功发送出去的网络数据包总数。
- RX bytes: Receiver bytes(接收的字节数)。表示该网络接口自启动以来,成功接收到的总数据量,以字节为单位。
- TX bytes: Transmitter bytes(发送的字节数)。表示该网络接口自启动以来,成功发送出去的总数据量,以字节为单位。
# 获取风扇转速
1 | sensors |
1 | amdgpu-pci-0500 |
上文信息有:风扇转速、主板温度、CPU 温度
# 获取硬盘的 SMART 信息、型号以及温度
1 | smartctl -a /dev/sdb |
# 信息
1 | smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.1.106-Unraid] (local build) |
# 温度
1 | SMART Attributes Data Structure revision number: 10 |
Airflow_Temperature_Cel 字段是温度
# NVME 硬盘
1 | SMART/Health Information (NVMe Log 0x02) |
Temperature 字段是温度
# 硬盘剩余空间
1 | df |
1 | Filesystem 1K-blocks Used Available Use% Mounted on |
# 获取硬盘休眠状态
smartctl -n standby -i /dev/sdb
1 | smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.1.106-Unraid] (local build) |
Power mode 字段
休眠中
1 | smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.1.106-Unraid] (local build) |
# 获取 APC UPS 电源状态
/sbin/apcaccess
1 | APC : 001,036,0863 |
# 虚拟机
# 获取列表
1 | virsh list --all |
1 | Id Name State |
# 获取网络绑定
1 | virsh domifaddr "Windows Server 2025" --source agent |
1 | Name MAC address Protocol Address |
# 获取图片
- 执行
virsh dumpxml "Windows Server 2025"获取 xml,解析vmtemplate xmlns="unraid" name="Windows 10" icon="windows11.png" os="windows10"/> - 获取
windows11.png
# Docker
# 获取列表
1 | docker ps -a |
1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
# 获取图片
1 | docker inspect $id |
[0].Config.Labels."net.unraid.docker.icon" => "https://raw.githubusercontent.com/EMP83/unraid-templates/main/PortainerCE/Portainer.png"
可能不存在,需要做好处理