chore: 移除内置脚本自更新流程
- 删除自更新菜单、版本比较及脚本替换逻辑 - 连续重排剩余主菜单的编号 - 将项目资源下载源重命名为 PROJECT_RAW_URL - 同步更新文档以反映精简后的功能
This commit is contained in:
@@ -27,14 +27,14 @@ curl -sS -O https://gitea.tohub.top/Share/kejilion/raw/branch/main/kejilion.sh &
|
|||||||
***
|
***
|
||||||
### 下载源配置
|
### 下载源配置
|
||||||
|
|
||||||
脚本内通过 GitHub Raw 下载的资源默认走官方地址,脚本自身更新走本仓库 `main` 分支,均可用环境变量覆盖。部分测试工具使用其项目提供的独立域名,不受 `GITHUB_RAW_URL` 控制:
|
脚本内通过 GitHub Raw 下载的第三方资源默认走官方地址,项目附属资源默认从本仓库 `main` 分支下载,两者均可用环境变量覆盖。部分测试工具使用其项目提供的独立域名,不受 `GITHUB_RAW_URL` 控制:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 自定义第三方脚本下载源(例如自建 GitHub 反代)
|
# 自定义第三方脚本下载源(例如自建 GitHub 反代)
|
||||||
GITHUB_RAW_URL="https://your-mirror.example.com" ./kejilion.sh
|
GITHUB_RAW_URL="https://your-mirror.example.com" ./kejilion.sh
|
||||||
|
|
||||||
# 自定义脚本自身的更新源
|
# 自定义本项目附属资源下载源
|
||||||
UPDATE_RAW_URL="https://gitea.tohub.top/Share/kejilion/raw/branch/main" ./kejilion.sh
|
PROJECT_RAW_URL="https://gitea.tohub.top/Share/kejilion/raw/branch/main" ./kejilion.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
- `./kejilion.sh clean`
|
- `./kejilion.sh clean`
|
||||||
- `./kejilion.sh 清理`
|
- `./kejilion.sh 清理`
|
||||||
|
|
||||||
### 5. BBR 管理
|
### 4. BBR 管理
|
||||||
|
|
||||||
提供 BBR 管理入口,但实际下载并执行第三方 `Linux-NetSpeed/tcpx.sh`。
|
提供 BBR 管理入口,但实际下载并执行第三方 `Linux-NetSpeed/tcpx.sh`。
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
|
|
||||||
另外,“系统工具”中还有一套本地实现的 **BBRv3/XanMod 内核管理**。
|
另外,“系统工具”中还有一套本地实现的 **BBRv3/XanMod 内核管理**。
|
||||||
|
|
||||||
### 8. 测试脚本合集
|
### 5. 测试脚本合集
|
||||||
|
|
||||||
#### IP 与解锁检测
|
#### IP 与解锁检测
|
||||||
|
|
||||||
@@ -267,21 +267,7 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 三、脚本自身功能
|
## 三、命令行快捷功能
|
||||||
|
|
||||||
### 脚本更新
|
|
||||||
|
|
||||||
支持:
|
|
||||||
|
|
||||||
- 获取远程版本号和更新日志
|
|
||||||
- 比较本地与远程版本
|
|
||||||
- 拒绝自动降级
|
|
||||||
- 下载新版本
|
|
||||||
- 执行 Bash 语法检查
|
|
||||||
- 校验下载版本
|
|
||||||
- 原子替换当前脚本
|
|
||||||
- 更新 `/usr/local/bin/k`
|
|
||||||
- 自动启动新版本
|
|
||||||
|
|
||||||
### 软件包快捷命令
|
### 软件包快捷命令
|
||||||
|
|
||||||
@@ -343,6 +329,6 @@ XanMod 软件源的 PGP 公钥。主脚本目前同样下载远程版本,没
|
|||||||
2. **用户、Swap、DNS、时区、更新源等系统管理**
|
2. **用户、Swap、DNS、时区、更新源等系统管理**
|
||||||
3. **BBR、网络线路与性能测试**
|
3. **BBR、网络线路与性能测试**
|
||||||
4. **Fail2Ban SSH 防护和流量限额关机**
|
4. **Fail2Ban SSH 防护和流量限额关机**
|
||||||
5. **脚本自更新和命令行快捷操作**
|
5. **软件包与系统维护命令行快捷操作**
|
||||||
|
|
||||||
其中系统管理、账户、Swap、更新源、Crontab、hosts、BBRv3 和限流功能有较完整的本地实现;普通 BBR 菜单和多数测试功能主要依赖远程脚本。
|
其中系统管理、账户、Swap、更新源、Crontab、hosts、BBRv3 和限流功能有较完整的本地实现;普通 BBR 菜单和多数测试功能主要依赖远程脚本。
|
||||||
+10
-94
@@ -13,9 +13,9 @@ hui='\e[37m'
|
|||||||
GITHUB_RAW_URL="${GITHUB_RAW_URL:-https://raw.githubusercontent.com}"
|
GITHUB_RAW_URL="${GITHUB_RAW_URL:-https://raw.githubusercontent.com}"
|
||||||
GITHUB_RAW_URL="${GITHUB_RAW_URL%/}"
|
GITHUB_RAW_URL="${GITHUB_RAW_URL%/}"
|
||||||
|
|
||||||
# 本脚本自身的更新源
|
# 本项目附属资源的下载源
|
||||||
UPDATE_RAW_URL="${UPDATE_RAW_URL:-https://gitea.tohub.top/Share/kejilion/raw/branch/main}"
|
PROJECT_RAW_URL="${PROJECT_RAW_URL:-https://gitea.tohub.top/Share/kejilion/raw/branch/main}"
|
||||||
UPDATE_RAW_URL="${UPDATE_RAW_URL%/}"
|
PROJECT_RAW_URL="${PROJECT_RAW_URL%/}"
|
||||||
|
|
||||||
XANMOD_SOURCE_FILE=/etc/apt/sources.list.d/kejilion-xanmod.list
|
XANMOD_SOURCE_FILE=/etc/apt/sources.list.d/kejilion-xanmod.list
|
||||||
|
|
||||||
@@ -215,24 +215,6 @@ update_limit_cron() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# 版本号比较:$1 严格大于 $2 时返回 0,用于避免自更新把脚本降级
|
|
||||||
version_gt() {
|
|
||||||
[ "$1" = "$2" ] && return 1
|
|
||||||
local IFS=. i x y
|
|
||||||
local a=($1) b=($2)
|
|
||||||
for ((i = 0; i < ${#a[@]} || i < ${#b[@]}; i++)); do
|
|
||||||
x=${a[i]:-0}; y=${b[i]:-0}
|
|
||||||
x=${x//[!0-9]/}; y=${y//[!0-9]/}
|
|
||||||
x=${x:-0}; y=${y:-0}
|
|
||||||
[ "$x" -gt "$y" ] && return 0
|
|
||||||
[ "$x" -lt "$y" ] && return 1
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ip_address() {
|
ip_address() {
|
||||||
ipv4_address=$(curl -s ipv4.ip.sb)
|
ipv4_address=$(curl -s ipv4.ip.sb)
|
||||||
ipv6_address=$(curl -s --max-time 1 ipv6.ip.sb)
|
ipv6_address=$(curl -s --max-time 1 ipv6.ip.sb)
|
||||||
@@ -868,11 +850,9 @@ echo "------------------------"
|
|||||||
echo "1. 系统信息查询"
|
echo "1. 系统信息查询"
|
||||||
echo "2. 系统更新"
|
echo "2. 系统更新"
|
||||||
echo "3. 系统清理"
|
echo "3. 系统清理"
|
||||||
echo "5. BBR管理 ▶"
|
echo "4. BBR管理 ▶"
|
||||||
echo "8. 测试脚本合集 ▶ "
|
echo "5. 测试脚本合集 ▶ "
|
||||||
echo "13. 系统工具 ▶ "
|
echo "6. 系统工具 ▶ "
|
||||||
echo "------------------------"
|
|
||||||
echo "00. 脚本更新"
|
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
echo "0. 退出脚本"
|
echo "0. 退出脚本"
|
||||||
echo "------------------------"
|
echo "------------------------"
|
||||||
@@ -1000,7 +980,7 @@ case $choice in
|
|||||||
linux_clean
|
linux_clean
|
||||||
;;
|
;;
|
||||||
|
|
||||||
5)
|
4)
|
||||||
clear
|
clear
|
||||||
tcpx_dir=$(mktemp -d) || {
|
tcpx_dir=$(mktemp -d) || {
|
||||||
err_msg "无法创建临时目录。"
|
err_msg "无法创建临时目录。"
|
||||||
@@ -1014,7 +994,7 @@ case $choice in
|
|||||||
rm -rf "$tcpx_dir"
|
rm -rf "$tcpx_dir"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
8)
|
5)
|
||||||
while true; do
|
while true; do
|
||||||
clear
|
clear
|
||||||
echo "▶ 测试脚本合集"
|
echo "▶ 测试脚本合集"
|
||||||
@@ -1158,7 +1138,7 @@ case $choice in
|
|||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
|
|
||||||
13)
|
6)
|
||||||
while true; do
|
while true; do
|
||||||
clear
|
clear
|
||||||
echo "▶ 系统工具"
|
echo "▶ 系统工具"
|
||||||
@@ -2232,7 +2212,7 @@ case $choice in
|
|||||||
fi
|
fi
|
||||||
limit_script_existed=1
|
limit_script_existed=1
|
||||||
fi
|
fi
|
||||||
if download_file "${UPDATE_RAW_URL}/Limiting_Shut_down.sh" "$tmp_limit_script" &&
|
if download_file "${PROJECT_RAW_URL}/Limiting_Shut_down.sh" "$tmp_limit_script" &&
|
||||||
sed -i "s/^threshold_gb=.*/threshold_gb=${threshold_gb}/" "$tmp_limit_script" &&
|
sed -i "s/^threshold_gb=.*/threshold_gb=${threshold_gb}/" "$tmp_limit_script" &&
|
||||||
grep -q "^threshold_gb=${threshold_gb}$" "$tmp_limit_script" &&
|
grep -q "^threshold_gb=${threshold_gb}$" "$tmp_limit_script" &&
|
||||||
bash -n "$tmp_limit_script" &&
|
bash -n "$tmp_limit_script" &&
|
||||||
@@ -2294,70 +2274,6 @@ case $choice in
|
|||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
|
|
||||||
00)
|
|
||||||
clear
|
|
||||||
echo "更新日志"
|
|
||||||
echo "------------------------"
|
|
||||||
changelog=$(curl -fsSL --max-time 20 "${UPDATE_RAW_URL}/kejilion_sh_log.txt")
|
|
||||||
if [ -n "$changelog" ]; then
|
|
||||||
echo "全部日志: ${UPDATE_RAW_URL}/kejilion_sh_log.txt"
|
|
||||||
echo "------------------------"
|
|
||||||
echo "$changelog" | tail -n 35
|
|
||||||
else
|
|
||||||
echo "(当前更新源未提供更新日志)"
|
|
||||||
fi
|
|
||||||
echo "------------------------"
|
|
||||||
|
|
||||||
sh_v_new=$(curl -fsSL --max-time 20 "${UPDATE_RAW_URL}/kejilion.sh" | grep -o 'sh_v="[0-9.]*"' | head -n 1 | cut -d '"' -f 2)
|
|
||||||
|
|
||||||
if [ -z "$sh_v_new" ]; then
|
|
||||||
err_msg "无法获取远程版本信息,请检查网络或更新源: ${UPDATE_RAW_URL}"
|
|
||||||
elif [ "$sh_v" = "$sh_v_new" ]; then
|
|
||||||
echo -e "${lv}你已经是最新版本!${huang}v$sh_v${bai}"
|
|
||||||
elif ! version_gt "$sh_v_new" "$sh_v"; then
|
|
||||||
echo -e "${lv}本地版本 ${huang}v$sh_v${lv} 高于更新源版本 ${huang}v$sh_v_new${lv},已跳过更新。${bai}"
|
|
||||||
else
|
|
||||||
echo "发现新版本!"
|
|
||||||
echo -e "当前版本 v$sh_v 最新版本 ${huang}v$sh_v_new${bai}"
|
|
||||||
echo "------------------------"
|
|
||||||
read -p "确定更新脚本吗?(Y/N): " choice
|
|
||||||
case "$choice" in
|
|
||||||
[Yy])
|
|
||||||
clear
|
|
||||||
# 在脚本所在目录下载并原子替换,避免更新失败时截断当前脚本
|
|
||||||
script_dir=$(dirname "$SCRIPT_PATH")
|
|
||||||
tmp_sh=$(mktemp "${script_dir}/.kejilion.sh.XXXXXX") || {
|
|
||||||
err_msg "创建更新临时文件失败。"
|
|
||||||
echo "按任意键继续..."
|
|
||||||
read -n 1 -s -r -p ""
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if download_file "${UPDATE_RAW_URL}/kejilion.sh" "$tmp_sh" &&
|
|
||||||
bash -n "$tmp_sh" &&
|
|
||||||
downloaded_version=$(grep -m1 -oE '^sh_v="[0-9]+([.][0-9]+)*"$' "$tmp_sh" | cut -d '"' -f 2) &&
|
|
||||||
[ "$downloaded_version" = "$sh_v_new" ] &&
|
|
||||||
version_gt "$downloaded_version" "$sh_v" &&
|
|
||||||
chmod +x "$tmp_sh" &&
|
|
||||||
mv -f "$tmp_sh" "$SCRIPT_PATH"; then
|
|
||||||
cp "$SCRIPT_PATH" /usr/local/bin/k > /dev/null 2>&1
|
|
||||||
echo -e "${lv}脚本已更新到最新版本!${huang}v$sh_v_new${bai}"
|
|
||||||
break_end
|
|
||||||
exec bash "$SCRIPT_PATH"
|
|
||||||
else
|
|
||||||
rm -f "$tmp_sh"
|
|
||||||
err_msg "更新失败,已保留当前版本。"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
[Nn])
|
|
||||||
echo "已取消"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
;;
|
|
||||||
|
|
||||||
0)
|
0)
|
||||||
clear
|
clear
|
||||||
exit
|
exit
|
||||||
|
|||||||
Reference in New Issue
Block a user