# 常用Linux脚本仓库 **Repository Path**: zeruns/Linux-shell ## Basic Information - **Project Name**: 常用Linux脚本仓库 - **Description**: 用来存放一些常用的Linux脚本 - **Primary Language**: Shell - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://blog.zeruns.com/ - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-06-13 - **Last Updated**: 2026-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 常用 Linux 脚本仓库 > 收集与整理常用 Linux 运维脚本:系统安装、性能基准测试、系统配置,开箱即用。 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ## 目录 - [介绍](#介绍) - [目录结构](#目录结构) - [脚本列表](#脚本列表) - [安装类 `install/`](#安装类-install) - [性能测试类 `benchmark/`](#性能测试类-benchmark) - [系统配置类 `system/`](#系统配置类-system) - [环境要求](#环境要求) - [安装与使用](#安装与使用) - [克隆仓库](#克隆仓库) - [直接下载单个脚本](#直接下载单个脚本无需克隆整个仓库) - [脚本使用示例](#脚本使用示例) - [参与贡献](#参与贡献) - [许可证](#许可证) - [推荐阅读](#推荐阅读) ## 介绍 这是一个收集和整理常用 Linux 脚本的仓库,旨在为 Linux 服务器管理、运维和性能评估提供便捷的工具集。仓库包含系统安装、基准测试、性能优化等多种实用脚本,适合运维人员、开发者和 Linux 爱好者使用。 脚本同时保留在根目录与分类子目录中:根目录副本用于兼容既有文档与外部链接(如 `./LemonBench.sh`),分类目录为推荐的按用途组织入口。修改脚本时请同步两处,避免内容分叉。 ## 目录结构 ``` Linux-shell/ ├── install/ # 安装类脚本 │ ├── JDK21_Dragonwell21_install.sh # 阿里 Dragonwell21 JDK 安装脚本 │ ├── JDK_Docker_Builder.sh # Eclipse Temurin JDK Docker 构建脚本 │ ├── MCSManager_Docker_install.sh # MCSManager 面板 Docker 版安装脚本 │ └── Pure-FTPd_install.sh # Pure-FTPd FTP 服务器安装脚本 ├── benchmark/ # 性能基准测试类脚本 │ ├── LemonBench.sh # 综合系统性能基准测试工具(原版) │ ├── LemonBench-fixed.sh # LemonBench 修复优化版(推荐) │ ├── speedtest.sh # 大陆三网+教育网测速脚本(修复优化版) │ └── unixbench.sh # UnixBench 系统性能基准测试工具 ├── system/ # 系统配置类脚本 │ └── setup_swap.sh # Linux Swap 交换分区配置脚本 ├── JDK21_Dragonwell21_install.sh # 根目录副本 ├── LemonBench.sh # 根目录副本 ├── Pure-FTPd_install.sh # 根目录副本 ├── setup_swap.sh # 根目录副本 ├── unixbench.sh # 根目录副本 ├── README.md ├── README.en.md └── LICENSE ``` ## 脚本列表 ### 安装类 `install/` | 脚本名称 | 功能说明 | |---------|---------| | `JDK21_Dragonwell21_install.sh` | 阿里 Dragonwell21 JDK 一键安装脚本,支持自动下载和配置环境变量 | | `JDK_Docker_Builder.sh` | Eclipse Temurin JDK Docker 镜像构建脚本,支持 JDK 8/11/17/21/25 单版本或批量构建,适用于 Minecraft 服务端 | | `MCSManager_Docker_install.sh` | MCSManager 面板 Docker 版一键部署脚本,支持 Web + Daemon 组合安装或单独安装,提供交互式配置界面 | | `Pure-FTPd_install.sh` | Pure-FTPd FTP 服务器一键安装脚本,支持虚拟用户和系统用户认证 | ### 性能测试类 `benchmark/` | 脚本名称 | 功能说明 | |---------|---------| | `LemonBench.sh` | 综合系统性能基准测试工具(上游原版),支持 CPU、内存、磁盘、网络等多方位测试,提供流媒体解锁检测和路由追踪功能,支持快速模式和完整模式 | | `LemonBench-fixed.sh` | **LemonBench 修复优化版(推荐)**,基于上游原版二次开发,修复依赖下载、IPv6 检测、测速节点失效等问题,新增 UnlockTests 流媒体引擎与多源 IP 归属查询(含 [ip-query.zeruns.com](https://ip-query.zeruns.com/api-docs.html)) | | `speedtest.sh` | **大陆三网+教育网测速脚本(修复优化版)**,基于 [i-abc/Speedtest](https://github.com/i-abc/speedtest) 思路二次开发,修复 Ookla 接口限流与地理限制导致的"只出一条测速记录"问题;三源合并节点库、候选续测、speedtest-go 双引擎自动降级、三网 TCP 延迟与国内镜像四线程下载测速 | | `unixbench.sh` | UnixBench 系统性能基准测试工具,用于评估 Linux 系统整体性能表现 | ### 系统配置类 `system/` | 脚本名称 | 功能说明 | |---------|---------| | `setup_swap.sh` | Linux Swap 交换分区配置脚本,支持自动检测系统环境和 OpenVZ 架构,提供 Swap 分区创建与优化功能 | ## 环境要求 - **操作系统**:主流 Linux 发行版(CentOS / Ubuntu / Debian / Alpine 等) - **解释器**:Bash 4.0 及以上版本 - **权限要求**: - 软件安装类脚本需要 root 权限,请使用 `sudo` 或以 root 用户运行 - 性能测试类脚本通常需要普通用户权限即可运行 - **网络要求**:安装类与测试类脚本在运行时会访问外网下载必要组件,请确保服务器具备互联网连接 - **依赖组件**:部分脚本可能需要额外依赖(如 curl、fio、sysbench 等),脚本会自动检测并提示安装 ## 安装与使用 ### 克隆仓库 ```bash # 克隆整个仓库到本地 git clone https://gitee.com/zeruns/Linux-shell.git # 进入仓库目录 cd Linux-shell # 为所有脚本添加执行权限 chmod +x *.sh install/*.sh benchmark/*.sh system/*.sh ``` ### 直接下载单个脚本(无需克隆整个仓库) 如果只想运行某个特定脚本,可直接通过原始文件链接下载并执行: ```bash # 语法说明 # https://gitee.com/zeruns/Linux-shell/raw/master/<脚本路径> # 示例:下载 LemonBench 基准测试脚本 curl -O https://gitee.com/zeruns/Linux-shell/raw/master/benchmark/LemonBench.sh chmod +x LemonBench.sh ./LemonBench.sh --fast # 示例:下载安装类脚本 curl -O https://gitee.com/zeruns/Linux-shell/raw/master/install/JDK21_Dragonwell21_install.sh chmod +x JDK21_Dragonwell21_install.sh ./JDK21_Dragonwell21_install.sh ``` ### 脚本使用示例 #### 1. JDK21 Dragonwell 安装 ```bash # 使用根目录副本 ./JDK21_Dragonwell21_install.sh # 或使用分类目录副本 ./install/JDK21_Dragonwell21_install.sh ``` **功能特性:** - 自动检测系统架构(x86_64/arm64) - 智能选择合适的 JDK 版本 - 自动配置环境变量 - 支持自定义安装目录 #### 2. MCSManager Docker 版部署 ```bash # 交互式安装向导 ./install/MCSManager_Docker_install.sh # 安装过程中会提示选择: # - 安装方式(组合安装/Web独立/Daemon独立) # - 安装目录 # - 端口配置 # - 启动策略 ``` **功能特性:** - 自动检测并安装 Docker 环境 - 支持多种安装模式 - 提供 Docker 镜像加速配置 - 自动生成配置文件 - 支持一键卸载 #### 3. LemonBench 系统基准测试 ```bash # 快速测试模式(推荐,日常使用) ./benchmark/LemonBench.sh --fast # 完整测试模式(深度测试,耗时较长) ./benchmark/LemonBench.sh --full # 查看帮助信息 ./benchmark/LemonBench.sh --help ``` **功能特性:** - 系统信息采集(CPU型号、核心数、内存容量、磁盘信息、虚拟机检测、操作系统版本、内核版本) - 网络信息检测(IP地址、运营商信息、带宽评估) - 流媒体服务解锁检测(Netflix、YouTube、Bilibili、TikTok、HBO、Disney+、BBC iPlayer 等) - CPU 性能基准测试(Sysbench) - 磁盘 I/O 性能测试(FIO) - 网络带宽测速 - Traceroute 路由追踪 - 测试报告生成与上传 #### 3.1 LemonBench 修复优化版(推荐) `benchmark/LemonBench-fixed.sh` 是基于上游 [LemonBench](https://github.com/LemonBench/LemonBench) 的修复优化版(二次开发),使用方式与原版一致: ```bash # 一键运行(快速模式,下载即测) curl -fsSL https://gitee.com/zeruns/Linux-shell/raw/master/benchmark/LemonBench-fixed.sh | bash # 或下载后运行 curl -O https://gitee.com/zeruns/Linux-shell/raw/master/benchmark/LemonBench-fixed.sh chmod +x LemonBench-fixed.sh ./LemonBench-fixed.sh --fast # 使用 UnlockTests 引擎进行流媒体解锁检测(推荐,需交互式终端) ./LemonBench-fixed.sh --fast --streaming-engine ut # 完整模式 ./LemonBench-fixed.sh --full ``` **相对原版的修复与增强:** - **依赖下载可靠性**:CDN 前缀探活 + jsDelivr + 直连三层回退,下载后进行 tar 完整性校验,告别"ghfast.top 单点失效就装不上依赖" - **IP 信息多源回退**:`ip.sb -> ipwho.is -> ifconfig.co -> ipapi.co`,四级源全部不可用时,改用 Cloudflare trace 取回自身 IP、再由 [ip-query.zeruns.com](https://ip-query.zeruns.com/api-docs.html)(纯真 IP 库)补全归属。同时修复了 IPv6-only 网络判定逻辑错误,香港等地区 `ip.sb` 返回 403 时仍能正确识别双栈 - **测速节点自维护**:三网测速节点改从远端 CSV 列表获取(上游仓库维护),节点失效时自动回退硬编码节点 - **修复 speedtest 退出码捕获 bug**:上游 `local ret && ret="$?"` 恒为 0,导致失败时输出 `FAIL:` 空信息或 `0.00 Mbps ... null` 脏数据 - **非 root 环境优化**:路由追踪需要 ICMP raw socket 权限,普通用户运行时预检并优雅跳过(原版会对 9 个目标连续报错刷屏),同时新增 WSL2 虚拟化识别 - **隐私优先**:测试报告默认不上传(上游默认上传且 paste 服务已停服),上传服务切换为 paste.rs,需要时通过参数开启 - **新增 `--streaming-engine` 参数**:支持使用 [UnlockTests](https://github.com/oneclickvirt/UnlockTests) 引擎进行更全面的流媒体解锁检测 - **报告与帮助完善**:df 解析健壮化(小容量磁盘统计错位)、帮助文档与实际参数一致化、IP 归属显示兼容中文字段 **注意事项:** - 建议 root 运行:路由追踪(ICMP)与部分依赖安装需要 root 权限;普通用户运行会自动跳过路由追踪 - `--streaming-engine ut` 需要 TTY 交互式终端,非交互环境自动回退内置测试 #### 3.2 大陆三网+教育网测速 `benchmark/speedtest.sh` 是基于 [i-abc/Speedtest](https://github.com/i-abc/speedtest) 思路二次开发的测速脚本,用于快速评估 VPS 到大陆电信/联通/移动三网及教育网的带宽质量。 ```bash # 一键运行(默认:最近的测速点 + 三网各 2 个节点 + 8 个国内镜像四线程下载测速) bash <(curl -fsSL https://gitee.com/zeruns/Linux-shell/raw/master/benchmark/speedtest.sh) # 下载后运行 curl -O https://gitee.com/zeruns/Linux-shell/raw/master/benchmark/speedtest.sh chmod +x speedtest.sh ./speedtest.sh --nodes 3 ``` **修复的问题:为什么上游脚本只出一条测速记录、国内节点全失败?** 实测发现上游脚本在境外服务器上有三道墙: 1. **限流墙**:Ookla 官方接口对单个来源 IP 有调用配额(实测连续调用约 10 次后返回 HTTP 429,官方 speedtest CLI 显示为 `Too many requests received`)。上游脚本单次要顺序测试 32 个 Ookla 节点,超出配额后直接中断,于是整场测试只剩第一条「最近的测速点」结果。 2. **地理限制墙**:Ookla 服务端列表接口**对境外 IP 不返回中国大陆节点**——实测无论用 `-o` 指定节点域名还是 `--server-id` 指定节点 ID,都返回 `No servers defined`(同一时刻邻近的香港节点 ID 可正常出数)。即上游脚本的三网测速对境外 IP 从机制上就不可用,这是国内节点全失败的根本原因。 3. **可达性墙**:部分国内节点对境外 TCP 直连就不通。 **本版本的应对(v1.2.1,借鉴 [spiritLHLS/ecs](https://github.com/spiritLHLS/ecs) 与 [xykt/NetQuality](https://github.com/xykt/NetQuality) 同类脚本做法):** - **三源合并节点库**:spiritLHLS/speedtest.net-CN-ID 节点表 + xykt/NetQuality 自维护三网节点库(含教育网节点)+ 内置兜底,按节点 ID 去重,每运营商候选池最多扩至 9 个(多镜像获取,含教育网维度) - **候选续测**:节点失败不再占用运营商名额,自动续测下一候选直至测满(`--nodes N`);端口预检不可达的候选计入「跳过」,汇总不失真 - **双引擎两级降级**:Ookla 官方 CLI 全局限流/全部失败时自动降级 [speedtest-go](https://github.com/showwin/speedtest-go)(speedtest.net 旧版接口,与官方 CLI 的限流互相独立)续测;某运营商在 Ookla 侧颗粒无收时,也会用备用引擎单独为该运营商补测(做法源自 ecs.sh 融合怪;备用引擎二进制经境内可达反代下载并做 SHA-256 校验) - **国内镜像四线程下载测速(核心)**:对南京大学/华为云/网易/天翼云(电信)/移动云(移动)及清华 TUNA/中科大/上海交大三个教育网镜像共 8 个源做并行分段下载,纯 HTTP 不依赖 Ookla 接口,**境内外服务器都能得到真实的中国方向下载带宽**;失败时展示 HTTP 状态码便于诊断 - **限流不再中断**:命中限流后先退避重试,仍被限流则停止遍历并自动交给备用引擎,最后给出结果汇总 - **三网节点改用 server-id 机制**:先做 TCP 端口预检(强制直连不走代理),端口不通直接跳过不浪费接口配额 - **多镜像回退**:节点表与二进制下载均支持多镜像(含 `jsdelivr.zeruns.com`),并内置兜底节点表 - **二进制缓存复用**:缓存位于 `~/.cache/zeruns-speedtest`(`--clean` 可清理) - **安全加固**:所有待请求 URL 与节点主机均做协议/主机校验(仅 http/https,拒绝环回、私有与保留地址),二进制做 SHA-256 校验,远端数据不进入命令行参数 - **依赖精简**:不需要 `bc`,仅依赖 `curl` 与 `tar` **常用选项:** | 选项 | 说明 | |------|------| | `--nodes N` | 每个运营商测满的节点数(默认 2) | | `--no-isp` | 跳过三网 Ookla 节点测试(只测国内镜像下载) | | `--no-mirrors` | 跳过国内镜像下载测速 | | `--delay S` | 节点之间的间隔秒数(默认 1) | | `--retry N` / `--backoff S` | 限流重试次数与等待秒数(默认 1 次 / 20 秒) | | `--clean` | 清理二进制缓存后退出 | **注意事项:** - Ookla 接口对部分境外 IP 不返回中国大陆节点,属接口限制而非网络不通;此时脚本会自动降级 speedtest-go 备用引擎,并提示以「国内镜像下载测速」的结果作为中国方向带宽参考 - 遇到 Ookla 接口限流时脚本会自动降级备用引擎续测,无需人工干预 #### 4. Pure-FTPd 安装 ```bash # 执行安装脚本 ./install/Pure-FTPd_install.sh ``` **功能特性:** - 自动安装 Pure-FTPd 及依赖 - 配置虚拟用户认证 - 设置防火墙规则 - 自动生成 SSL/TLS 证书(可选) #### 5. Swap 分区配置 ```bash # 需要 root 权限执行 sudo ./system/setup_swap.sh ``` **功能特性:** - 自动检测系统环境兼容性 - OpenVZ 架构智能识别 - Swap 文件创建与启用 - 优化 Swappiness 参数 - 友好的人机交互提示 #### 6. UnixBench 性能测试 ```bash # 执行 UnixBench 测试 ./benchmark/unixbench.sh # 查看帮助 ./benchmark/unixbench.sh --help ``` **功能特性:** - 系统整体性能评估 - 多维度测试项目 - 自动编译测试程序 - 输出详细的测试报告 ## 参与贡献 欢迎社区贡献者参与本项目的开发和维护: 1. **Fork 本仓库**:点击页面右上角的 Fork 按钮 2. **创建分支**:新建 `Feat_xxx` 分支进行开发 3. **提交更改**:确保代码质量,添加必要的注释 4. **发起 Pull Request**:描述你的改动内容和原因 **贡献指南:** - 保持代码风格一致,使用 shellcheck 进行静态检查 - 为新脚本添加详细的使用说明和注释 - 确保脚本兼容主流 Linux 发行版 - 测试通过后再提交 Pull Request ## 许可证 本项目采用 MIT 许可证开源,这意味着您可以自由地使用、修改和分发本项目的代码,但需要遵守以下条件: - 保留原始版权声明 - 在分发时包含完整的许可证文本 详情请参阅 [LICENSE](LICENSE) 文件。 ## 推荐阅读 - **高性价比和便宜的VPS/云服务器推荐**: [https://blog.zeruns.com/archives/383.html](https://blog.zeruns.com/archives/383.html) - **各家AI大模型API平台推荐与简介:** [https://blog.zeruns.com/archives/947.html](https://blog.zeruns.com/archives/947.html) - **我的世界服务器搭建教程:** [https://blog.zeruns.com/tag/mc/](https://blog.zeruns.com/tag/mc/) - **Hermes Agent 部署全指南:** [https://blog.zeruns.com/archives/939.html](https://blog.zeruns.com/archives/939.html) - **绿联(Ugreen)DXP4800Pro NAS 开箱评测与拆解:** [https://blog.zeruns.com/archives/949.html](https://blog.zeruns.com/archives/949.html) - **运算放大器(Op-Amp)入门指南:** [https://blog.zeruns.com/archives/938.html](https://blog.zeruns.com/archives/938.html) --- **仓库地址**: **作者**:zeruns **博客**: