Shell开源脚本分享
Eli-chang开源脚本集合使用说明
欢迎使用Eli-chang的开源脚本集合。以下是每个脚本的详细使用说明、依赖描述、环境变量配置以及参数用法。
更新日期:2024年8月8日
为方便调用,该系列脚本已经增加统一入口,可以直接运行bash <(curl -sL sc.eli1.top)来获取帮助以及执行或下载对应脚本。
该系列脚本仅供测试学习交流使用,请勿在生产环境中使用,若环境中包含重要数据,请务必在使用前将数据进行妥善备份。
脚本已同步发布在GitHub和Gitee上,欢迎Star和Fork。
Gitee: https://gitee.com/Eli-chang/scripts
Github: https://github.com/db-root/scripts
系列脚本包括:
- CheckSSL.sh 网站SSL证书到期时间监控
- install-cri-docker.sh 安装cri-docker,Docker的CRI运行时
- install-docker2.sh 安装或更新Docker到最新版本或指定版本
- install-docker.sh 安装或更新Docker到最新版本或指定版本(Docker官方版,已添加国内镜像源支持)
- install-nginx.sh 安装Nginx Web服务器
- mng.sh 合并Nginx配置文件及其include的文件
- OpenSSL.sh 生成自签名SSL证书
- install-g 自动下载并安装 g 工具(版本 1.7.0),配置 Go 环境变量
- install-zerotier.sh 安装ZeroTier(使用南京大学镜像源)
- SystemInfoMonitor.sh 监控系统信息,包括CPU、内存、磁盘和网络使用率,并在超过阈值时发送告警(经过简单调试可实现钉钉、企业微信告警)。
CheckSSL.sh 脚本使用说明
脚本功能
检查指定网站的SSL证书到期时间,并在到期前发送告警。
脚本依赖
opensslcurl
环境变量依赖
bark_key(可选,用于发送bark通知)
.env文件应和该脚本文件处于同一目录内,并且文件中应包含变量"bark_key",例如“bark_key=xxxxxxxxxx”,获取方式参考: brak使用参考
若不需要进行通知告警,则可以手动将脚本中的条件判断语句进行注释
也可以添加其他告警,例如钉钉、企微或其他webhook等告警通道例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16# if [ -f ./.env ]; then # source ./.env # else # echo ".env file not found! Manually copy the ".env-template" file to ".env" and add variables as required" # exit 1 # fi ······ # get_ssl_expiry_date() { ······ # if [ $days_left -le 7 ]; then # curl -s https://api.day.app/$bark_key/SSL监控告警/"$site: 证书在 $days_left 天内过期"?group=jobtest # else # echo "$site: Certificate expires on $formatted_date" # fi # }
参数用法
- 无特定命令行参数,配置通过
.env文件或脚本内硬编码。
使用方法
- 下载脚本:
- 创建并配置环境变量文件:
- 运行脚本:
1bash CheckSSL.sh
install-cri-docker.sh 脚本使用说明
脚本功能
安装cri-docker,Docker的CRI运行时。
脚本依赖
wgettarsystemd
环境变量依赖
无特定环境变量依赖。
参数用法
- 无参数,脚本直接执行安装流程。
使用方法
- 下载脚本:
1bash <(curl -sL sc.eli1.top) install-cri-docker download - 运行脚本:
1bash <(curl -sL sc.eli1.top) install-cri-docker
install-docker2.sh 脚本使用说明
脚本功能
采用二进制安装或更新Docker到最新版本或指定版本。
目前已经测试过:Ubuntu 16+、Debain 11+、CentOS/RHEL/AlmaLinux/RockyLinux 7+、Alibaba Cloud Linux 2+、OpenSUSE/SUSE 12+
脚本依赖
curltar
环境变量依赖
无特定环境变量依赖。
参数用法
-s:跳过版本选择,直接安装最新版本。
使用方法
- 下载脚本:
1bash <(curl -sL sc.eli1.top) install-docker2 - 运行脚本:
1bash <(curl -sL sc.eli1.top) install-docker2 -s # 直接安装最新版本
install-docker.sh 脚本使用说明
脚本功能
docker官方提供的安装脚本,已经替换docker官方的源,并添加了国内镜像源支持。但经过测试,目前仅支持常见Linux操作系统,其他可能支持性比较差,建议使用install-docker2
脚本依赖
curl
环境变量依赖
mirror(可选,用于指定软件源镜像)
参数用法
--version <VERSION>:安装指定版本的Docker。--channel <stable|test>:选择安装通道。--mirror <Aliyun|AzureChinaCloud>:选择使用哪个镜像源,默认使用的是国内镜像站。
使用方法
- 下载脚本:
1bash <(curl -sL sc.eli1.top) install-docker - 运行脚本:
1bash <(curl -sL sc.eli1.top) install-docker --mirror Aliyun
install-nginx.sh 脚本使用说明
脚本功能
使用包管理器安装预编译版Nginx Web服务器。
默认不会安装任何模块,若有需要,可以手动使用包管理安装
目前已经测试过:Ubuntu 16+、Debain 11+、CentOS/RHEL/AlmaLinux/RockyLinux 7+、Alibaba Cloud Linux 2+、OpenSUSE/SUSE 12+
脚本依赖
- 根据系统不同,可能是
apt-get、yum、zypper等包管理工具。
环境变量依赖
无特定环境变量依赖。
参数用法
- 无参数,脚本自动添加Nginx仓库并安装。
使用方法
- 下载脚本:
1bash <(curl -sL sc.eli1.top) install-nginx.sh download - 运行脚本:
mng.sh 脚本使用说明
脚本功能
合并Nginx配置文件及其include的文件。
脚本依赖
无特定脚本依赖。
环境变量依赖
CFGPATH:需要设置为实际的Nginx配置文件路径。
参数用法
- 无参数,脚本输出合并后的配置文件到标准输出。
使用方法
- 下载脚本:
1bash <(curl -sL sc.eli1.top) mng download - 配置并运行脚本:
OpenSSL.sh 脚本使用说明
脚本功能
生成自签名SSL证书。
脚本依赖
openssl
环境变量依赖
bark_key(可选,用于发送bark通知)
参数用法
| |
使用方法
- 下载脚本:
1bash <(curl -sL sc.eli1.top) OpenSSL download - 运行脚本:
SystemInfoMonitor.sh 脚本使用说明
脚本功能
监控系统信息,包括CPU、内存、磁盘和网络使用率,并在超过阈值时发送告警。
脚本依赖
curl
环境变量依赖
bark_key:用于发送bark通知。
参数用法
- 无参数,脚本使用内置阈值和灵敏度设置。
内置变量
| |
使用方法
| |
g 安装脚本使用说明
脚本功能
自动下载并安装 g 工具(版本 1.7.0),配置 Go 环境变量,支持多平台架构。该工具用于管理 Go 语言环境,包含 GOROOT 和 GOPATH 的自动配置。
脚本依赖
wget或curl(二选一,用于下载工具)tar(用于解压安装包)- 支持的 Shell:
bash或zsh
环境变量依赖
- 无预设环境变量依赖
注意:脚本会自动在~/.g/env中配置以下关键环境变量:安装完成后无需手动设置,脚本会自动将环境配置添加到 shell 配置文件(.bashrc/.zshrc)。
参数用法
- 无命令行参数,直接执行脚本即可
- 版本号固定为
1.7.0(可通过修改脚本中的release变量自定义)
使用方法
执行安装脚本
直接运行以下命令(无需下载脚本文件):1bash <(curl -sL https://sc.eli1.top/g) install-g验证安装
安装完成后,重新打开终端或执行:1source ~/.g/env然后验证安装:
1g version # 应显示 v1.7.0环境配置说明
- 工具安装路径:
~/.g/bin/ - 环境变量配置文件:
~/.g/env - 自动写入配置到:
~/.bashrc或~/.zshrc(根据当前 Shell 类型) - 国内镜像源:
G_MIRROR已设置为https://golang.google.cn/dl/
- 工具安装路径:
后续使用
安装完成后,可直接使用g命令管理 Go 环境,例如:
重要提示
- 首次安装后需重新打开终端使环境变量生效
- 如需手动加载环境:
source ~/.g/env- 安装文件会缓存至
~/.g/downloads/,可安全删除该目录清理缓存
install-zerotier.sh 脚本使用说明
脚本功能
自动安装 ZeroTier One 网络服务,特别优化了国内安装体验。主要特点:
- 使用南京大学开源镜像站加速下载(替代官方源)
- 原生支持 Alibaba Cloud Linux 3 和 龙蜥系统(Anolis OS)
- 兼容主流 Linux 发行版(Ubuntu/CentOS/Debian 等)
脚本依赖
curl或wget(用于下载安装包)sudo(需要 root 权限)- 系统包管理器(
apt/yum/dnf/zypper) - GPG 密钥验证工具(自动安装)
环境变量依赖
- 无预设环境变量(不支持自动加入网络)
说明:本脚本仅安装 ZeroTier 服务,不提供
ZT_NETWORK_ID等网络加入功能。安装后需手动执行zerotier-cli join <network_id>加入网络。
参数用法
- 无命令行参数
- 通过系统环境自动识别发行版(无需额外配置)
使用方法
执行安装命令
直接运行以下命令(无需下载脚本):1bash <(curl -sL sc.eli1.top) install-zerotier验证安装结果
特殊系统适配说明
系统类型 适配方式 Alibaba Cloud Linux 3 自动映射至 el/8 软件源 Anolis OS 8.x 自动映射至 el/8 软件源 Anolis OS 23+ 自动映射至 el/9 软件源 其他主流 Linux 发行版 自动匹配对应版本的官方软件源
重要提示
- 无需配置环境变量,脚本自动处理所有系统适配
- 安装后自动启动服务,无需重启系统
- 国内用户安装速度显著提升(通过南京大学镜像站)
- 需要手动加入网络:
sudo zerotier-cli join <network_id>- 完整 ZeroTier 文档: zerotier.com
请根据您的具体需求,按照上述指南使用相应的脚本。如果需要进一步的帮助或有其他问题,欢迎提交Issue或联系我。