linux下frp更新居然也需要手动执行,于是网上搜索一番,找到了一个自动化脚本,自己修改了一下,分享给大家。
感谢这位博主分享的自动化脚本。
自动化脚本
控制台执行内容
nano update_frp.sh
# 粘贴下方的自动化升级脚本
# 保存退出 ctrl+o ctrl+x
chmod +x update_frp.sh
./update_frp.sh
自动化升级脚本
修改/var/www/frp、frps、linux_amd64为你需要的值
#!/usr/bin/env bash
# FRP updater
# frp可执行文件的路径
[ -z "${FRP_PATH}" ] && FRP_PATH=/var/www/frp
# frp端,服务端为frps,客户端为frpc
[ -z "${FRP_END}" ] && FRP_END=frps
# 架构 默认为linux_amd64
[ -z "${ARCH}" ] && ARCH=linux_amd64
[ -z "${SUDO}" ] && [ "${NO_SUDO}" != "Y" ] && which sudo >/dev/null 2>&1 && SUDO=sudo
VER=$(${FRP_PATH}/${FRP_END} -v)
RELEASE_URL="https://api.github.com/repos/fatedier/frp/releases/latest"
TMP_NAME=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
TMP_DIR="/tmp/frp_${TMP_NAME}"
mkdir -p "${TMP_DIR}"
pushd "${TMP_DIR}" >/dev/null
DL_URL=$(curl -s ${RELEASE_URL} | grep ${ARCH} | grep browser_download_url | cut -d '"' -f 4)
if (echo ${DL_URL} | grep ${VER}) >/dev/null 2>&1; then
echo already latest version!
else
wget ${DL_URL} -O frp.tar.gz
tar zxvf frp.tar.gz
cd frp_*
$SUDO cp -f "${FRP_END}" "${FRP_PATH}/"
CUR_VER=$(${FRP_PATH}/${FRP_END} -v)
echo "Update FRP Complete (${VER} -> ${CUR_VER})!"
fi
popd >/dev/null
rm -rf "${TMP_DIR}"
# 自己写的systemd服务脚本,可以看下方详情
systemctl restart frp
systemd服务配置
cd /etc/systemd/system
nano frp.service
# 粘贴下方systemd服务配置详情
systemd服务配置详情
将/var/www/frp改为你的frp执行地址
[Unit]
Description=frp server
After=network.target
[Service]
User=nobody
Type=simple
WorkingDirectory=/var/www/frp
ExecStart=/var/www/frp/frps -c /var/www/frp/frps.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target