最近飞牛在应用中心上线了openlist,但却是4.1.7版本的,以后大概率也是很久才会更新一次,想实时体验最新版就只能替换二进制文件,做了个简单脚本,每天自动检测是否需要更新,需要就下载解压替换二进制文件并且重启
首先要去github新建一个tokens,因为我试了开梯子的话,出口IP就是梯子的IP地址,而梯子一般都是多人使用一个节点的,github对于同一个IP地址的不登陆拉取行为有次数限制,用tokens再拉取就相当于用登录身份拉取了,次数就没限制了
github中关于tokens的地址:Personal Access Tokens (Classic)
创建新token:Generate new token (classic)
期限(Expiration)可以修改成永不失效(No expiration),虽然说不安全
在Select scopes中勾选访问公共仓库(public_repo)的权限
然后到底下保存跳转,复制新生成的token,替换下面代码的token
用 vi /root/update_openlist.sh命令新建更新脚本,将下面代码粘贴到脚本内
#!/bin/bash
BIN_DIR="/vol1/@appcenter/OpenList/bin"
APP_BIN="$BIN_DIR/openlist"
APPDEST="/vol1/@appcenter/OpenList"
PKGVAR="/vol1/@appdata/OpenList"
RESTART_DIR="/var/apps/OpenList/cmd/main"
GITHUB_TOKEN="此处替换成刚复制的token"
CURRENT_VERSION=$($APP_BIN version | awk '/^Version:/ {print substr($2,2)}')
LATEST_VERSION=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/repos/OpenListTeam/OpenList/releases/latest \
| awk -F'"' '/"tag_name":/ {print substr($4,2)}')
echo "当前版本: $CURRENT_VERSION"
echo "最新版本: $LATEST_VERSION"
if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then
echo "当前已是最新版本,无需更新。"
exit 0
fi
echo "发现新版本,开始更新..."
cd "$BIN_DIR" || exit 1
# 下载到 bin 目录
curl -sL -H "Authorization: token $GITHUB_TOKEN" \
-o openlist-linux-amd64.tar.gz "https://github.com/OpenListTeam/OpenList/releases/download/v${LATEST_VERSION}/openlist-linux-amd64.tar.gz" \
|| { echo "下载失败"; exit 1; }
# 解压覆盖
tar -xzf openlist-linux-amd64.tar.gz || { echo "解压失败"; rm -f openlist-linux-amd64.tar.gz; exit 1; }
# 删除压缩包
rm -f openlist-linux-amd64.tar.gz
# 设置权限
chmod 755 "$BIN_DIR/openlist"
# 环境变量 + 重启服务
TRIM_APPDEST="$APPDEST" TRIM_PKGVAR="$PKGVAR" "$RESTART_DIR" restart
echo "OpenList 已更新到 $LATEST_VERSION 并完成重启。"
用 chmod +x /root/update_openlist.sh命令赋予脚本执行权限
创建定时任务(每天凌晨三点执行)
crontab -e编辑cron
添加一行:
0 3 * * * /bin/bash /root/update_openlist.sh
这样就能每天自动检测并更新openlist的二进制文件
重新进入openlist就能看到后端已经是最新版的4.1.8了

应用中心的版本显示不会更改,但是已经是更新成功了