📅  最后修改于: 2023-12-03 15:23:49.174000             🧑  作者: Mango
如果你是一个开发者或者管理员,常常需要用到 ngrok 来实现内网穿透,但是 ngrok 限制了免费使用的时间,如何保证不过期呢?本文将介绍如何在 Shell-Bash 环境下使用定时任务自动更新 ngrok。
首先需要下载 ngrok,可以到官网下载最新的版本。下载完成后解压:
$ unzip /path/to/ngrok.zip -d /path/to/extract
使用 ngrok 需要先在官网上 注册一个账号,并获取 auth token。
需要使用 jq 命令来解析 json 数据,如果没有安装可以通过以下命令进行安装:
$ sudo apt-get install -y jq
使用 curl 命令获取当前最新的 ngrok 版本号和下载链接,然后使用 wget 命令下载更新,并备份原有的版本。需要注意的是,在使用 curl 获取数据的时候,需要将 auth token 添加到 header 中。
#!/bin/bash
TOKEN=<your_auth_token>
NGROK_DIR=/path/to/extract
NGROK_BACKUP_DIR=/path/to/backup
NGROK_CUR_VER=$(curl -s https://api.ngrok.com/api/2/version | jq -r '. | select(.arch == "amd64") | .version')
NGROK_NEW_VER=$(curl -s https://ngrok.com/download | grep -oP "https://bin.equinox.io/c/.*?/.*?_linux_amd64.zip" | cut -d "/" -f6 | cut -d "_" -f1)
if [ "$NGROK_CUR_VER" != "$NGROK_NEW_VER" ]; then
wget https://bin.equinox.io/c/$NGROK_NEW_VER/ngrok-stable-linux-amd64.zip -O /tmp/ngrok.zip
mv $NGROK_DIR/ngrok $NGROK_BACKUP_DIR/ngrok-$NGROK_CUR_VER
unzip /tmp/ngrok.zip -d $NGROK_DIR
rm /tmp/ngrok.zip
chmod +x $NGROK_DIR/ngrok
fi
exit 0
使用 crontab 命令添加定时任务,每天凌晨检查一次更新:
$ crontab -e
然后添加以下行代码:
0 0 * * * /path/to/update_ngrok.sh >/dev/null 2>&1
至此,定时任务就已经添加完成,以后不需要手动更新 ngrok 了。