← 返回

系统信息速查

一条命令看清发行版、内核、CPU、内存、磁盘、网卡与常用服务状态。只读,不改动任何配置。

普通用户即可只读

一键执行

curl -fsSL https://www.moiu.cn/scripts/sysinfo.sh | bash

脚本源码

#!/usr/bin/env bash
# 系统信息速查
#
# 只读脚本:不改动任何配置,也不需要 root(少数项在普通用户下会显示不出来)。
# 用法:bash sysinfo.sh

set -u

line() { printf '%s\n' '----------------------------------------'; }
row()  { printf '  %-12s %s\n' "$1" "$2"; }

echo '====== 系统信息速查 ======'
line

if [ -r /etc/os-release ]; then
    . /etc/os-release
    row '发行版' "$PRETTY_NAME"
fi
row '内核' "$(uname -r)"
row '架构' "$(uname -m)"
row '主机名' "$(hostname)"
row '运行时长' "$(uptime -p 2>/dev/null || uptime)"
line

if [ -r /proc/cpuinfo ]; then
    row 'CPU' "$(awk -F': ' '/^model name/ {print $2; exit}' /proc/cpuinfo)"
fi
row '核心数' "$(nproc 2>/dev/null || echo '?')"
row '负载' "$(cut -d' ' -f1-3 /proc/loadavg 2>/dev/null)"
line

if command -v free >/dev/null 2>&1; then
    free -h | awk 'NR == 1 || /^Mem/ || /^Swap/'
fi
line

df -h -x tmpfs -x devtmpfs 2>/dev/null | awk 'NR == 1 || $NF == "/"'
line

if command -v ip >/dev/null 2>&1; then
    ip -brief addr show 2>/dev/null | awk '{printf "  %-10s %s\n", $1, $3}'
fi
row '公网 IP' "$(curl -fsSL --max-time 5 https://api.ipify.org 2>/dev/null || echo '(取不到)')"
line

for svc in nginx docker sshd; do
    if systemctl list-unit-files 2>/dev/null | grep -q "^$svc"; then
        row "$svc" "$(systemctl is-active "$svc" 2>/dev/null || echo unknown)"
    fi
done
line

下载原始文件