Utoljára aktív 9 months ago

此腳本用於快速檢視 Linux 系統的基本資訊,包括作業系統、CPU、記憶體、檔案描述符、網路設定、TCP 參數、連線追蹤與當前開啟的 TCP 連線狀況,方便系統管理與效能調校。

Revízió 15bed1b72935fb7230bf0b446a9f4dc1590c23bc

README.md Eredeti
chmod +x system_info.sh
./system_info.sh > system_report.txt
system_info.sh Eredeti
1#!/bin/bash
2
3echo "===== [ 系統基本資訊 ] ====="
4echo "作業系統: $(lsb_release -d | cut -f2)"
5echo "核心版本: $(uname -r)"
6echo "CPU 型號: $(lscpu | grep 'Model name' | sed 's/Model name:\s*//')"
7echo "CPU 核心數: $(nproc)"
8echo "記憶體狀態:"
9free -h
10
11echo ""
12echo "===== [ 檔案描述符資訊 ] ====="
13echo "當前最大開啟檔案數: $(ulimit -n)"
14echo "系統允許最大開啟檔案數: $(cat /proc/sys/fs/file-max)"
15echo "當前已開啟檔案數量: $(awk '{print $1}' /proc/sys/fs/file-nr)"
16
17echo ""
18echo "===== [ 網路設定 ] ====="
19for param in rmem_max wmem_max netdev_max_backlog somaxconn; do
20 if [ -f "/proc/sys/net/core/$param" ]; then
21 echo "$param: $(sysctl -n net.core.$param)"
22 else
23 echo "$param: [無此參數]"
24 fi
25done
26
27echo ""
28echo "===== [ TCP 設定 ] ====="
29echo "TCP TIME_WAIT 重用: $(sysctl -n net.ipv4.tcp_tw_reuse)"
30echo "TCP FIN_TIMEOUT: $(sysctl -n net.ipv4.tcp_fin_timeout)"
31echo "TCP SYN 佇列長度: $(sysctl -n net.ipv4.tcp_max_syn_backlog)"
32echo "TCP 快速開啟 (Fast Open): $(sysctl -n net.ipv4.tcp_fastopen)"
33echo "TCP 擁塞控制演算法: $(sysctl -n net.ipv4.tcp_congestion_control)"
34
35echo ""
36echo "===== [ 連線追蹤 (Conntrack) 設定 ] ====="
37echo "最大連線追蹤數: $(sysctl -n net.netfilter.nf_conntrack_max)"
38echo "當前連線追蹤數: $(cat /proc/sys/net/netfilter/nf_conntrack_count)"
39
40echo ""
41echo "===== [ 當前開啟的 TCP 連線 ] ====="
42echo "總 TCP 連線數: $(ss -ant | wc -l)"
43echo "TIME_WAIT 連線數: $(ss -ant | grep TIME-WAIT | wc -l)"
44echo "ESTABLISHED 連線數: $(ss -ant | grep ESTAB | wc -l)"
45
46echo ""
47echo "===== [ 目前的 sysctl 設定 ] ====="
48sysctl -a 2>/dev/null | grep -E 'fs.file-max|net.core.somaxconn|net.ipv4.tcp_tw_reuse|net.ipv4.tcp_fin_timeout|net.ipv4.tcp_max_syn_backlog|net.ipv4.tcp_fastopen|net.ipv4.tcp_congestion_control|net.netfilter.nf_conntrack_max'
49