Portfolio sample

Linux 服务器健康检查 — 示例报告

下面的结果来自一次真实的只读运行。主机名、IP 和用户已替换为占位符。命令输出仍是当时采集到的证据摘录。

摘要

  • High 高 0
  • Medium 中 0
  • Low 低 2
  • OK 正常 7
  • N/A 不适用 4

检查项

项目风险建议
操作系统、内核、运行时间与负载OK 正常已读到操作系统、内核、运行时间与负载。请把这份快照和报告其余部分一起留存。
磁盘用量OK 正常符合条件的文件系统均在 70% 及以下。文件系统用量高于 85% 记为高,高于 70% 记为中。在进入这两个区间前安排清理或扩容。已跳过虚拟文件系统。
inode 用量OK 正常符合条件的文件系统均在 70% 及以下。inode 压力使用同一档位:高于 85% 为高,高于 70% 为中。inode 用尽时,即使还有剩余字节也无法新建文件。
内存与交换区Low 低内存占用高于 90% 为高,高于 80% 为中。交换区占用高于 80% 为高,高于 50% 为中。内存本身正常但没有交换区时记为低,因为突发占用没有缓冲。
失败的 systemd 单元N/A 不适用这里的 init 不是正在运行的 systemd,因此无法列出失败单元。
正在监听的 TCP 端口Low 低至少有一个 TCP 端口在通配地址上监听。请确认每个监听都是有意开放的,并且有防火墙限制。
SSH root 登录与口令认证N/A 不适用未能读取 SSH 设置。请跳过此项,或由约定账户提供配置文件。
待处理的软件包更新OK 正常提及安全源的行与其他可升级软件包分开计数。安全相关超过 20 行为高,只要有安全相关行则为中,其余待更新为低。安装更新不在本次只读检查范围内。
时间同步N/A 不适用由于没有可用的 systemd,timedatectl 无法查询此环境。
近期内存耗尽与内核错误OK 正常摘录中没有内存耗尽、panic 或匹配到的内核错误。这只是最近一段摘录,不是完整历史。
/etc 中的全局可写文件OK 正常在该文件系统的 /etc 下没有发现全局可写的普通文件。
UID 为 0 的账户OK 正常/etc/passwd 中只有 root 的 UID 为 0。
本地证书到期时间N/A 不适用在 nginx、apache、letsencrypt、haproxy 或私有 SSL 目录下没有找到本地服务器证书。公共 CA 证书库不视为服务器证书。

按优先级排列的建议

  • Low 低. 内存与交换区: 内存占用高于 90% 为高,高于 80% 为中。交换区占用高于 80% 为高,高于 50% 为中。内存本身正常但没有交换区时记为低,因为突发占用没有缓冲。
  • Low 低. 正在监听的 TCP 端口: 至少有一个 TCP 端口在通配地址上监听。请确认每个监听都是有意开放的,并且有防火墙限制。

证据

操作系统、内核、运行时间与负载

uname -srmv; uptime; cat /proc/loadavg; awk /etc/os-release

os-release:
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION="13 (trixie)"
uname: Linux 6.12.94+ #1 SMP PREEMPT_DYNAMIC Fri Oct 16 00:53:04 UTC 2026 x86_64
uptime:  10:04:34 up  5:04,  0 users,  load average: 4.09, 3.83, 3.19
loadavg: 4.09 3.83 3.19 3/2709 314901

磁盘用量

df -PT

Filesystem     Type     1024-blocks     Used Available Capacity Mounted on
/dev/vdb       ext4       131063268 81159004  49887880      62% /
devtmpfs       devtmpfs     8191116        0   8191116       0% /dev
shm            tmpfs        8193184        0   8193184       0% /dev/shm

inode 用量

df -PiT

Filesystem     Type      Inodes   IUsed   IFree IUse% Mounted on
/dev/vdb       ext4     8388608 1820810 6567798   22% /
devtmpfs       devtmpfs 2047779     322 2047457    1% /dev
shm            tmpfs    2048296       1 2048295    1% /dev/shm

内存与交换区

awk /proc/meminfo

MemTotal_kB 16386368
MemAvailable_kB 5684008
SwapTotal_kB 0
SwapFree_kB 0
mem_used_pct 65
swap_used_pct none

失败的 systemd 单元

systemctl list-units --state=failed --no-legend --plain --no-pager

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to system scope bus via local transport: Host is down

正在监听的 TCP 端口

ss -tlnp

State  Recv-Q Send-Q Local Address:Port  Peer Address:PortProcess                                   
LISTEN 0      4096       127.0.0.1:5678       0.0.0.0:*                                             
LISTEN 0      32         127.0.0.1:5905       0.0.0.0:*    users:(("x11vnc",pid=243352,fd=8))       
LISTEN 0      32         127.0.0.1:5907       0.0.0.0:*    users:(("x11vnc",pid=232272,fd=8))       
LISTEN 0      32         127.0.0.1:5906       0.0.0.0:*    users:(("x11vnc",pid=233641,fd=8))       
LISTEN 0      32         127.0.0.1:5900       0.0.0.0:*    users:(("x11vnc",pid=2813,fd=8))         
LISTEN 0      32         127.0.0.1:5903       0.0.0.0:*    users:(("x11vnc",pid=307563,fd=8))       
LISTEN 0      32         127.0.0.1:5902       0.0.0.0:*    users:(("x11vnc",pid=84169,fd=8))        
LISTEN 0      100          0.0.0.0:6081       0.0.0.0:*    users:(("websockify",pid=204,fd=3))      
LISTEN 0      100          0.0.0.0:6080       0.0.0.0:*    users:(("websockify",pid=2840,fd=3))     
LISTEN 0      4096       127.0.0.1:8088       0.0.0.0:*                                             
LISTEN 0      4096       127.0.0.1:18081      0.0.0.0:*                                             
LISTEN 0      10         127.0.0.1:9224       0.0.0.0:*    users:(("chrome",pid=91348,fd=84))       
LISTEN 0      10         127.0.0.1:9227       0.0.0.0:*    users:(("chrome",pid=244382,fd=78))      
LISTEN 0      10         127.0.0.1:9228       0.0.0.0:*    users:(("chrome",pid=244823,fd=87))      
LISTEN 0      128          0.0.0.0:8790       0.0.0.0:*    users:(("sand-egress-tun",pid=348,fd=9)) 
LISTEN 0      128          0.0.0.0:50052      0.0.0.0:*                                             
LISTEN 0      5          127.0.0.1:8766       0.0.0.0:*    users:(("python3",pid=104294,fd=5))      
LISTEN 0      2048       127.0.0.1:8787       0.0.0.0:*    users:(("python",pid=5417,fd=9))         
LISTEN 0      128        127.0.0.1:8791       0.0.0.0:*    users:(("sand-egress-tun",pid=348,fd=10))
LISTEN 0      511          0.0.0.0:1340       0.0.0.0:*    users:(("node",pid=9579,fd=79))          
LISTEN 0      511          0.0.0.0:1339       0.0.0.0:*    users:(("node",pid=227,fd=21))           
LISTEN 0      128          0.0.0.0:26500      0.0.0.0:*                                             
LISTEN 0      5            0.0.0.0:2375       0.0.0.0:*                                             
... truncated ...

SSH root 登录与口令认证

sshd -T || read /etc/ssh/sshd_config

sshd and sshd_config not available

待处理的软件包更新

apt list --upgradable

upgradable_count 0
security_mentions 0

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Listing...

时间同步

timedatectl status

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to system scope bus via local transport: Host is down

近期内存耗尽与内核错误

dmesg

source: dmesg
[Tue Oct 20 05:00:26 2026] Linux version 6.12.94+ (root@0a07c1601064) (gcc (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC Fri Oct 16 00:53:04 UTC 2026
[Tue Oct 20 05:00:26 2026] Command line: console=ttyS0 root=/dev/vda random.trust_cpu=on ip=192.0.2.1::192.0.2.2:255.255.255.0::eth0:off rw loglevel=7 earlyprintk=ttyS0 print-fatal-signals=1 systemd.unified_cgroup_hierarchy=1 systemd.setenv=SWAP_SIZE_MB=0 reboot=k panic=1 nomodule i8042.noaux=1 i8042.nomux=1 i8042.dumbkbd=1 clocksource=kvm-clock tsc=unstable nosoftlockup root=/dev/vda rw
[Tue Oct 20 05:00:26 2026] KASLR disabled
[Tue Oct 20 05:00:26 2026] x86/split lock detection: #DB: warning on user-space bus_locks
[Tue Oct 20 05:00:26 2026] BIOS-provided physical RAM map:
[Tue Oct 20 05:00:26 2026] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[Tue Oct 20 05:00:26 2026] BIOS-e820: [mem 0x000000000009fc00-0x00000000000fffff] reserved
[Tue Oct 20 05:00:26 2026] BIOS-e820: [mem 0x0000000000100000-0x00000000bfffffff] usable
[Tue Oct 20 05:00:26 2026] BIOS-e820: [mem 0x00000000eec00000-0x00000000febfffff] reserved
[Tue Oct 20 05:00:26 2026] BIOS-e820: [mem 0x0000000100000000-0x000000043fffffff] usable
[Tue Oct 20 05:00:26 2026] printk: legacy bootconsole [earlyser0] enabled
[Tue Oct 20 05:00:26 2026] NX (Execute Disable) protection: active
[Tue Oct 20 05:00:26 2026] APIC: Static calls initialized
[Tue Oct 20 05:00:26 2026] DMI not present or invalid.
[Tue Oct 20 05:00:26 2026] Hypervisor detected: KVM
[Tue Oct 20 05:00:26 2026] last_pfn = 0xc0000 max_arch_pfn = 0x400000000
[Tue Oct 20 05:00:26 2026] kvm-clock: Using msrs 4b564d01 and 4b564d00
[Tue Oct 20 05:00:26 2026] kvm-clock: using sched offset of 51153483 cycles
[Tue Oct 20 05:00:26 2026] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[Tue Oct 20 05:00:26 2026] tsc: Detected 2400.000 MHz processor
[Tue Oct 20 05:00:26 2026] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[Tue Oct 20 05:00:26 2026] e820: remove [mem 0x000a0000-0x000fffff] usable
[Tue Oct 20 05:00:26 2026] last_pfn = 0x440000 max_arch_pfn = 0x400000000
... truncated ...

/etc 中的全局可写文件

find /etc -xdev -type f -perm -0002 -print

count 0
(none)

UID 为 0 的账户

awk -F: '$3==0 {print $1}' /etc/passwd

root

本地证书到期时间

openssl x509 -noout -enddate -in CERT

no local leaf certificates found under the usual server paths

服务边界

包含

  • 本报告列出的只读检查
  • 这份书面报告
  • 按优先级排列的建议

不包含

  • 对系统的任何改动
  • 修复、安装软件包或重启服务
  • 超出约定只读账户之外的访问

Read-only. No changes are made to your system without written approval.

只读检查,未经书面批准不对系统做任何改动。

Chinese text uses Noto Sans CJK SC, which fc-list :lang=zh shows on the machine that rendered this PDF.