# linux-ops-toolbox **Repository Path**: doobo/linux-ops-toolbox ## Basic Information - **Project Name**: linux-ops-toolbox - **Description**: No description available - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-05 - **Last Updated**: 2026-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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 安全模块公共函数 ``` ## 快速开始 ```bash # 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. 退出 ``` ## 命令行用法 ```bash ./toolbox.sh --help # 帮助 ./toolbox.sh --version # 版本 ./toolbox.sh --remote <命令> # 批量在远程服务器执行 ``` 内置批量动作: ```bash ./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 ``` ## 许可 开源运维工具,仅供授权服务器使用。