系统信息查看
Tutorial: 运维相关
Category: Shell
Published: 2026-04-07 13:58:25
Views: 22
Likes: 0
Comments: 0
系统信息查看脚本
- 脚本
#!/bin/bash
NET="eth0"
CPUTIME=$(ps -eo pcpu | awk 'NR>1' | awk '{tot=tot+$1} END {print tot}')
CPUCORES=$(cat /proc/cpuinfo | grep -c processor)
nCPU=$(cat /proc/cpuinfo | grep -c 'processor')
declare -a CPU[${nCPU}]
for i in $(seq 1 ${nCPU}); do
CPUMOD=$(cat /proc/cpuinfo | grep -m 1 -w 'model name' | awk -F: '{print $2}')
CPUSPEC=$(cat /proc/cpuinfo | grep -m 1 -w 'cpu MHz' | awk -F: '{print $2}')
done
WHO=$(who | wc -l)
WHAT=$(w -hs)
USER=$(whoami)
GROUP=$(groups)
HOSTNAME=$(hostname)
SYSREL=$(cat /etc/redhat-release)
KERNEL=$(uname -r)
UPTIME=$(uptime | sed 's/^.*up *//;s/, *[0-9]* user.*$/m/; s/ day[^0-9]*/d, /;s/ \([hm]\).*m$/\1/;s/:/h, /; s/^/ /')
BTIME=$(who -b)
IPADDR=$(hostname -I)
EXTADDR=$(dig myip.opendns.com @resolver1.opendns.com +short)
HWADDR=$(ip link show $NET | awk '/ether/ {print $2}')
MEM=$(free | grep -w 'Mem' | awk '{print $2}')
MEMFREE=$(free | grep -w 'Mem' | awk '{print $4}')
SWAP=$(free | grep -w 'Swap' | awk '{print $2}')
SWAPFREE=$(free | grep -w 'Swap' | awk '{print $4}')
let MEM="$MEM/1024"
let SWAP="$SWAP/1024"
let MEMFREE="MEMFREE/1024"
let SWAPFREE="SWAPFREE/1024"
ROOT=$(df -h / | awk '{ a = $4 } END { print a }')
read one five fifteen rest </proc/loadavg
echo -e "
\e[0;35m
==== BOOT TIME ==== ==== UPTIME ====
\e[1;34m $BTIME \e[1;34m$UPTIME
\e[0;35m
\e[0;35m=====================================: \e[1;32mSystem Info\e[0;35m :============================
+\e[0;37mHostname \e[0;35m= \e[1;34m$HOSTNAME
\e[0;35m+\e[0;37mLinux Version \e[0;35m= \e[1;34m$SYSREL
\e[0;35m+\e[0;37mKernel \e[0;35m= \e[1;34m$KERNEL
\e[0;35m+\e[0;37mCPU \e[0;35m= \e[1;34m[${i}]:${CPUMOD} @${CPUSPEC} MHz
\e[0;35m
\e[0;35m-------------------------------------: \e[1;32mNetwork Data\e[0;35m :---------------------------
\e[0;35m+\e[0;37mInternal IP Address \e[0;35m= \e[1;34m$IPADDR
\e[0;35m+\e[0;37mExternal IP Address \e[0;35m= \e[1;34m$EXTADDR
\e[0;35m+\e[0;37mHardware Address \e[0;35m= \e[1;34m$HWADDR
\e[0;35m
\e[0;35m-------------------------------------: \e[1;32mSystem Data\e[0;35m :----------------------------
\e[0;35m+\e[0;37mLoad \e[0;35m= \e[0;37m1 Min: \e[1;34m${one} \e[0;37m5 Min: \e[1;34m${five} \e[0;37m15 Min: \e[1;34m${fifteen}
\e[0;35m+\e[0;37mCPU Avarage \e[0;35m= \e[1;34m$(echo $CPUTIME / $CPUCORES | bc)%
\e[0;35m+\e[0;37mMemory \e[0;35m= \e[1;34m${MEM} MB \e[0;37mMemory Free \e[0;35m= \e[1;34m${MEMFREE} MB
\e[0;35m+\e[0;37mSwap \e[0;35m= \e[1;34m${SWAP} MB \e[0;37mSwap Free \e[0;35m= \e[1;34m${SWAPFREE} MB
\e[0;35m+\e[0;37mDisk Space Available - root \e[0;35m= \e[1;34m$ROOT
\e[0;35m
\e[0;35m--------------------------------------: \e[1;32mUser Data\e[0;35m :-----------------------------
+\e[0;37mUsername \e[0;35m= \e[1;34m$USER
\e[0;35m+\e[0;37mGroups \e[0;35m= \e[1;34m$GROUP
\e[0;35m+\e[0;37mUsers on the System \e[0;35m= \e[1;34m$WHO
\e[1;32mUSER\e[0;35m :---: \e[1;32mTTY\e[0;35m :--: \e[1;32mIP\e[0;35m :-----------: \e[1;32mIDLE\e[0;35m : \e[1;32mUser Command \e[0;35m:------------------------
\e[1;34m$WHAT
\e[0;35m
\e[0;35m================================================================================
"
- 案例输出
==== BOOT TIME ==== ==== UPTIME ====
system boot 2022-12-09 19:26 3h, 55m
=====================================: System Info :============================
+Hostname = demo
+Linux Version = CentOS Linux release 7.9.2009 (Core)
+Kernel = 3.10.0-1160.76.1.el7.x86_64
+CPU = [12]: Intel(R) Xeon(R) Platinum 8269CY CPU T 3.10GHz @ 3200.091 MHz
-------------------------------------: Network Data :---------------------------
+Internal IP Address = 172.16.1.33 192.168.122.1
+External IP Address = 147.12.168.242
+Hardware Address = 00:16:3e:00:54:20
-------------------------------------: System Data :----------------------------
+Load = 1 Min: 0.00 5 Min: 0.01 15 Min: 0.05
+CPU Avarage = 0%
+Memory = 47364 MB Memory Free = 45476 MB
+Swap = 0 MB Swap Free = 0 MB
+Disk Space Available - root = 86G
--------------------------------------: User Data :-----------------------------
+Username = root
+Groups = root
+Users on the System = 1
USER :---: TTY :--: IP :-----------: IDLE : User Command :------------------------
root pts/0 222.71.162.100 7.00s w -hs
================================================================================