sysauto: 一个轻量级 Linux 系统信息快查工具 一、前言:为什么要写这个小工具?平时在 Linux 环境下运维或者排查问题时,经常需要确认服务器的基本信息。每次都要敲一堆零碎的命令:看系统版本:cat /etc/os-release看 IP 地址:ifconfig或ip addr看内存和负载:free -h和uptime看磁盘:df -h作为一个多年的运维人员,我觉得这太繁琐了。于是决定用纯 Shell 手写一个全局命令工具sysauto,实现一键查询系统和网络核心信息,并且写了一个自动化部署脚本,让它像ls、cd一样成为系统的全局命令。二、功能设计与改造思路在最初的基础版本上,我结合了实际运维场景进行了深度改造:增加内存、负载与磁盘监控:排查问题最常看的就是这些,加入了free -h、uptime和df -hT的格式化输出解决 ifconfig 兼容性问题:现在的 CentOS 8 / Ubuntu 20+ 默认不装 net-tools,直接敲ifconfig会报错。我修改了网络模块,优先使用ip命令,并做了向下兼容处理增加外网 IP 和网关查询:顺便把默认网关和外网 IP(通过curl ifconfig.me)也加上了,并增加了超时控制,防止在内网机器上卡死增加一键卸载功能:有安装就得有卸载,部署脚本支持--uninstall参数,干净利落终端彩色输出:加入了 ANSI 颜色转义,让终端信息看起来更清爽、专业三、核心代码实现3.1 主程序:sysauto.sh这是工具的核心逻辑,负责解析命令并输出对应的信息。备注:如果只单独使用sysauto.sh的话,就只能通过chmod +x sysauto.sh,然后再用./sysauto.sh执行或者是sh sysauto.shubuntu 24.04的系统,只能通过./sysauto.sh下面我是配套sysauto_install.sh使用的,也就可以单独使用sysauto命令#!/bin/bash# 自己写的运维小工具,受够了每次查信息敲一堆命令# 用法:sysauto 命令# 定义点颜色,终端看着舒服点RED='\033[0;31m'GREEN='\033[0;32m'YELLOW='\033[1;33m'NC='\033[0m'# No Colorfunctionshow_help(){echo-e"${GREEN}用法:${NC}sysauto command"echo""echo-e"${YELLOW}支持的命令:${NC}"echo" sysinfo 查看系统基础信息(版本/内核/主机名)"echo" netinfo 查看网络信息(内外网IP/网关)"echo" diskinfo 查看磁盘使用情况"echo" perfinfo 查看系统性能(内存/负载/CPU核数)"echo" help 查看本帮助"echo""echo-e"${GREEN}例子:${NC}sysauto sysinfo"}functionget_system_info(){echo-e"${GREEN}====== 系统基本信息 ======${NC}"echo"主机名 :$(hostname)"# 获取系统版本,兼容下不同发行版if[-f/etc/os-release];thensys_ver=$(grepPRETTY_NAME /etc/os-release|cut-d'='-f2|tr-d'"')elif[-f/etc/redhat-release];thensys_ver=$(cat/etc/redhat-release)elsesys_ver="未知Linux发行版"fiecho"系统版本 :$sys_ver"echo"内核版本 :$(uname-r)"echo"CPU架构 :$(uname-m)"echo"运行时间 :$(uptime-p