Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux OPS Toolbox

纯 Shell (Bash) 实现的 Linux 运维管理工具箱,通过交互式菜单统一管理常见服务器运维操作,支持多发行版自动适配与模块化扩展。

特性

  • 无需安装额外服务,开箱即用(仅依赖 Bash ≥ 4.0 与常见系统命令)
  • 自动识别操作系统、CPU 架构、包管理器、systemd 支持
  • 支持 Ubuntu / Debian / CentOS / Rocky Linux / AlmaLinux / OpenEuler 等主流发行版
  • 模块化设计,公共逻辑统一管理,易于扩展
  • 危险操作二次确认,关键修改自动备份
  • 操作日志记录(时间 / 用户 / 命令 / 结果)
  • 批量远程运维:支持服务器选择、免密配置、多命令连续执行

目录结构

linux-ops-toolbox/
├── toolbox.sh              主程序(交互菜单 + --remote/--version/--help)
├── remote.sh               批量远程运维(服务器选择 / 免密 / 多命令连续执行)
├── .gitignore
├── lib/
│   ├── color.sh            ANSI 颜色与 info/warn/error/ok/section 输出
│   ├── logger.sh           日志记录(自动建 logs/,支持过期清理)
│   ├── os_detect.sh        系统环境检测 + 多发行版安装/卸载/查版本
│   └── utils.sh            通用工具(确认、输入、root 校验、SSH/防火墙操作)
├── config/
│   ├── config.conf         全局配置(日志、Docker 镜像、SSH 用户/端口等)
│   ├── server-list.example.txt   批量服务器列表模板
│   └── server-list.txt     批量服务器列表(已忽略,请从模板复制)
└── modules/
    ├── system/
    │   ├── info.sh          系统信息(总览/CPU/内存/磁盘/版本/负载)
    │   └── optimize.sh      系统优化(内核参数/ulimit/BBR/Swap/时间/清理/一键)
    ├── user/
    │   ├── user_manager.sh  用户管理菜单
    │   ├── user_functions.sh 用户操作公共函数
    │   ├── add_admin.sh     创建管理员用户
    │   └── delete_user.sh   删除用户
    ├── software/
    │   └── software_manager.sh  软件安装/卸载/版本检测/刷新源
    ├── service/
    │   └── service_manager.sh   常用服务管理(nginx/openresty/mysql/redis/docker/ssh)
    ├── docker/
    │   ├── install.sh       Docker 安装(官方脚本 + 镜像加速)
    │   └── manage.sh        Docker 容器/镜像/日志/清理
    └── security/
        ├── security_menu.sh 安全加固菜单
        ├── ssh.sh           SSH 加固/端口/root/密码 开关与解锁
        ├── firewall.sh      防火墙配置(ufw/firewalld/iptables 自适应)
        ├── fail2ban.sh      Fail2ban 安装/状态/解封
        └── security_common.sh 安全模块公共函数

快速开始

# 1. 复制服务器列表模板(可选,批量运维用)
cp config/server-list.example.txt config/server-list.txt

# 服务器列表每行一个目标,支持 user@host 逐台指定账号:
#   192.168.1.10          # 使用 config.conf 中 SSH_USER(默认 root)
#   didton@192.168.1.11   # 使用 didton 账号登录

# 2. 启动交互菜单
./toolbox.sh

主菜单:

 1. 系统信息
 2. 用户管理
 3. 软件管理
 4. 服务管理
 5. Docker 管理
 6. 安全加固
 7. 系统优化
 8. 批量运维(远程)
 0. 退出

命令行用法

./toolbox.sh --help                  # 帮助
./toolbox.sh --version               # 版本
./toolbox.sh --remote <命令>         # 批量在远程服务器执行

内置批量动作:

./toolbox.sh --remote passwordless               # 配置所有服务器免密登录(首次输密码)
./toolbox.sh --remote install docker             # 远程安装软件(自动识别包管理器)
./toolbox.sh --remote service nginx status       # 远程服务管理
./toolbox.sh --remote info                       # 远程系统信息
./toolbox.sh --remote 'systemctl status sshd'    # 任意远端命令

批量远程运维(交互模式)

运行 ./toolbox.sh 后选 8,或在 toolbox 根目录直接执行 ./remote.sh

  1. 显示带编号的服务器列表,可选择目标服务器:
    • 回车 = 全部
    • 2 = 单台,1,3 = 多台,1-3 = 范围
  2. 连续输入多条命令,执行完自动回到命令输入:
    • passwordless 配置免密登录(首次输入密码后安装公钥,之后无需密码)
    • install <包> / service <服务> <动作> / info 为内置动作
    • 其他输入按远端 shell 命令直接执行
    • c 重新选择服务器,q 退出

配置说明

编辑 config/config.conf

配置项 说明
LOG_ENABLE 日志开关(1 开 / 0 关)
LOG_RETENTION_DAYS 日志保留天数,超过自动清理
DOCKER_MIRROR Docker 镜像加速地址(留空不配置)
SSH_PORT_DEFAULT 批量运维默认 SSH 端口
SSH_USER 批量运维默认登录用户(留空用 root)
SERVER_LIST_FILE 批量服务器列表路径
SERVICE_LIST 服务管理菜单中的服务列表

日志

操作日志写入 logs/ops-YYYY-MM-DD.log,格式:

2026-08-05 14:30:00 | root | INFO | 创建用户: admin (admin=1)
2026-08-05 14:30:05 | root | INFO | 执行命令: systemctl restart nginx
2026-08-05 14:30:06 | root | INFO | 执行结果: success

系统适配

lib/os_detect.sh 通过 /etc/os-release 自动识别环境并适配差异:

发行版 包管理器 管理员组
Ubuntu / Debian apt sudo
CentOS / RHEL / Rocky / Alma / OpenEuler dnf / yum wheel
Arch pacman wheel
Alpine apk wheel

开发扩展

新增模块步骤:

  1. modules/ 下创建独立脚本(脚本内自行定位 TOOLBOX_DIR 并加载 lib)
  2. toolbox.sh 主菜单 case 中注册入口
  3. 需要 root 的操作调用 require_root,危险操作调用 confirm 二次确认
  4. 使用 log_info / log_warn / log_error 记录操作

发布打包

git add -A && git commit -m "chore: release v1.0.0"
git tag v1.0.0
git push origin v1.0.0 --tags   # 触发 Actions 自动发 Release

许可

开源运维工具,仅供授权服务器使用。

About

纯 Shell (Bash) 实现的 Linux 运维管理工具箱,通过交互式菜单统一管理常见服务器运维操作,支持多发行版自动适配与模块化扩展。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages