Created
May 19, 2026 03:08
-
-
Save renfei/cd97b10c8d96dd52d6603afcd77210b1 to your computer and use it in GitHub Desktop.
服务器环境信息采集脚本
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| OUT="env_collect_$(hostname 2>/dev/null || echo unknown)_$(date +%Y%m%d_%H%M%S).txt" | |
| run() { | |
| echo "" | |
| echo "===== $1 =====" | |
| shift | |
| "$@" 2>&1 | |
| } | |
| { | |
| echo "环境采集时间: $(date)" | |
| echo "主机名: $(hostname 2>/dev/null)" | |
| echo "当前用户: $(whoami 2>/dev/null)" | |
| run "UNAME" uname -a | |
| run "ARCH" uname -m | |
| echo "" | |
| echo "===== OS RELEASE FILES =====" | |
| for f in \ | |
| /etc/os-release \ | |
| /etc/issue \ | |
| /etc/redhat-release \ | |
| /etc/centos-release \ | |
| /etc/rocky-release \ | |
| /etc/almalinux-release \ | |
| /etc/openEuler-release \ | |
| /etc/kylin-release \ | |
| /etc/uos-release \ | |
| /etc/debian_version | |
| do | |
| if [ -f "$f" ]; then | |
| echo "--- $f ---" | |
| cat "$f" 2>&1 | |
| fi | |
| done | |
| echo "" | |
| echo "===== PACKAGE TYPE =====" | |
| if command -v rpm >/dev/null 2>&1; then | |
| echo "rpm: yes" | |
| rpm --version 2>&1 | head -n 1 | |
| else | |
| echo "rpm: no" | |
| fi | |
| if command -v dpkg >/dev/null 2>&1; then | |
| echo "dpkg: yes" | |
| dpkg --version 2>&1 | head -n 1 | |
| else | |
| echo "dpkg: no" | |
| fi | |
| if command -v yum >/dev/null 2>&1; then | |
| echo "yum: yes" | |
| fi | |
| if command -v dnf >/dev/null 2>&1; then | |
| echo "dnf: yes" | |
| fi | |
| if command -v apt >/dev/null 2>&1; then | |
| echo "apt: yes" | |
| fi | |
| run "CPU lscpu" lscpu | |
| run "CPU /proc/cpuinfo head" sh -c "cat /proc/cpuinfo 2>/dev/null | head -n 80" | |
| run "MEMORY" sh -c "free -h 2>/dev/null || cat /proc/meminfo 2>/dev/null | head" | |
| run "DISK df" df -h | |
| run "DISK lsblk" lsblk | |
| run "MOUNT" mount | |
| run "GLIBC / LIBC" sh -c "ldd --version 2>&1 | head -n 5 || true" | |
| run "SYSTEMD" sh -c "systemctl --version 2>&1 | head -n 3 || ps -p 1 -o comm= 2>/dev/null" | |
| run "NETWORK ip addr" sh -c "ip addr 2>/dev/null || ifconfig -a 2>/dev/null" | |
| run "ROUTE" sh -c "ip route 2>/dev/null || route -n 2>/dev/null" | |
| run "DNS" cat /etc/resolv.conf | |
| run "FIREWALL" sh -c "systemctl status firewalld 2>/dev/null | head -n 20; iptables -L -n 2>/dev/null | head -n 80" | |
| run "SELINUX" sh -c "getenforce 2>/dev/null || sestatus 2>/dev/null || echo 'SELinux command not found'" | |
| run "APPARMOR" sh -c "aa-status 2>/dev/null || echo 'AppArmor command not found'" | |
| run "DOCKER" sh -c "docker --version 2>/dev/null; docker info 2>/dev/null | head -n 80" | |
| run "PODMAN" sh -c "podman --version 2>/dev/null; podman info 2>/dev/null | head -n 80" | |
| run "JAVA" sh -c "java -version 2>&1; echo JAVA_HOME=$JAVA_HOME" | |
| run "PYTHON" sh -c "python --version 2>&1; python3 --version 2>&1" | |
| run "GCC" sh -c "gcc --version 2>/dev/null | head -n 1" | |
| run "VIRTUALIZATION" sh -c "systemd-detect-virt 2>/dev/null || virt-what 2>/dev/null || echo unknown" | |
| run "PORTS" sh -c "ss -lntup 2>/dev/null || netstat -lntup 2>/dev/null" | |
| } > "$OUT" | |
| echo "采集完成:$OUT" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment