From 39874367406aaad7a1311f35634ac5ab484ac727 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 20 Dec 2024 15:25:10 +0800 Subject: [PATCH 001/210] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 148367b1..acc44c24 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,7 +4,7 @@ on: schedule: # 使用cron表达式定义任务运行的时间 # github使用utc时间 - - cron: '3 2 * * *' #波兰凌晨3点3分 + - cron: '3 22 * * *' #北京时间6点 workflow_dispatch: jobs: From d139a31149d72ffaed1a0f6946b581c1fa2f4d7b Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 22 Dec 2024 21:34:00 +0800 Subject: [PATCH 002/210] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0ip=E5=87=BA=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- singbox/start.sh | 2 +- start.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/singbox/start.sh b/singbox/start.sh index 81fba785..d47a9f15 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -66,7 +66,7 @@ export_list() { if [[ "$HY2IP" != "::" ]]; then myip=${HY2IP} else - myip="$(curl -s ifconfig.me)" + myip="$(curl -s icanhazip.com)" fi vmessname="Argo-vmess-$host-$user" hy2name="Hy2-$host-$user" diff --git a/start.sh b/start.sh index 39fc0a1a..4c35939d 100755 --- a/start.sh +++ b/start.sh @@ -1164,7 +1164,7 @@ setColorWord(){ } showIP(){ - myip="$(curl -s ifconfig.me)" + myip="$(curl -s icanhazip.com)" green "本机IP: $myip" } From 95ba5cbd187a4141cfe4f559b29fcb2fa63ad08b Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 23 Dec 2024 15:04:52 +0800 Subject: [PATCH 003/210] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E8=87=AA=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E9=81=BF=E5=85=8D=E9=87=8D=E5=A4=8D=E8=BF=90=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/keepalive.sh b/keepalive.sh index a00b3d95..9950173b 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -169,6 +169,12 @@ startWebSSH(){ } #main +#启动自检查避免重复运行 +if checkProcAlive "keepalive.sh"; then + echo "已在运行中" + exit 0 +fi + if [ -n "$autoUp" ]; then echo "run autoUpdate" autoUpdate From 80c9a1e4389c4d1af3e48b81d2b4365b05f8fa63 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 23 Dec 2024 17:02:11 +0800 Subject: [PATCH 004/210] .. --- keepalive.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index 9950173b..a00b3d95 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -169,12 +169,6 @@ startWebSSH(){ } #main -#启动自检查避免重复运行 -if checkProcAlive "keepalive.sh"; then - echo "已在运行中" - exit 0 -fi - if [ -n "$autoUp" ]; then echo "run autoUpdate" autoUpdate From 4e11be7d040f1cfb5a8b76e11e57ae7b4e65517d Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 27 Dec 2024 01:22:35 +0800 Subject: [PATCH 005/210] =?UTF-8?q?=E8=A7=A3=E5=86=B3s14=E7=9C=8Byoutube?= =?UTF-8?q?=E5=8D=A159=E7=A7=92=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 109 insertions(+), 3 deletions(-) diff --git a/start.sh b/start.sh index 4c35939d..1ab21f92 100755 --- a/start.sh +++ b/start.sh @@ -278,6 +278,46 @@ make_vmess_config() { } EOF } +make_outbound_wireguard(){ + cat < temp_outbound_socks5.json < temphy2.json <config.json < singbox.json < Date: Sat, 28 Dec 2024 17:16:38 +0800 Subject: [PATCH 006/210] =?UTF-8?q?=E7=BE=8E=E5=8C=96=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 1 + keepalive.sh | 11 ++++++-- revive.sh | 6 ++-- ssl/cronSSL.sh | 3 +- tgsend.sh | 54 ++++++++++++++++++++++++++++++++---- 5 files changed, 64 insertions(+), 11 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index acc44c24..41ba1065 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -27,6 +27,7 @@ jobs: TELEGRAM_USERID: ${{secrets.TELEGRAM_USERID}} WXSENDKEY: ${{secrets.WXSENDKEY}} SENDTYPE: ${{secrets.SENDTYPE}} + BUTTON_URL: ${{secrets.BUTTON_URL}} run: | chmod +x ./revive.sh ./revive.sh diff --git a/keepalive.sh b/keepalive.sh index a00b3d95..f5901221 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -9,6 +9,7 @@ sendtype=$2 TELEGRAM_TOKEN="$3" TELEGRAM_USERID="$4" WXSENDKEY="$5" +BUTTON_URL="$6" checkHy2Alive() { @@ -58,7 +59,8 @@ makeMsgConfig(){ "telegram_token": "$TELEGRAM_TOKEN", "telegram_userid": "$TELEGRAM_USERID", "wxsendkey": "$WXSENDKEY", - "sendtype": "$sendtype" + "sendtype": "$sendtype", + "button_url: "$BUTTON_URL" } EOF } @@ -217,7 +219,12 @@ else sendtype=$send_type fi -export TELEGRAM_TOKEN TELEGRAM_USERID WXSENDKEY sendtype +if [ -z "$BUTTON_URL" ]; then + echo "从msg.json获取 BUTTON_URL" + BUTTON_URL=$(jq -r ".button_url // empty" msg.json) +fi + +export TELEGRAM_TOKEN TELEGRAM_USERID WXSENDKEY sendtype BUTTON_URL #echo "最终TELEGRAM_TOKEN=$TELEGRAM_TOKEN,TELEGRAM_USERID=$TELEGRAM_USERID" host=$(hostname) diff --git a/revive.sh b/revive.sh index 8ea09781..33388e01 100755 --- a/revive.sh +++ b/revive.sh @@ -20,15 +20,15 @@ for info in "${hosts_info[@]}"; do port=$(echo $info | jq -r ".port") pass=$(echo $info | jq -r ".password") - script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} ${TELEGRAM_TOKEN} ${TELEGRAM_USERID} ${WXSENDKEY}" + script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} ${TELEGRAM_TOKEN} ${TELEGRAM_USERID} ${WXSENDKEY} ${BUTTON_URL}" - output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<< "$script") + output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") echo "output:$output" if echo "$output" | grep -q "更新完毕"; then echo "登录成功" else echo "登录失败" - ./tgsend.sh "主机:$host,用户名:$user,登录失败请检查!" + ./tgsend.sh "Host:$host,user:$user,登录失败请检查!" fi done diff --git a/ssl/cronSSL.sh b/ssl/cronSSL.sh index af4847cb..f3e5f24f 100644 --- a/ssl/cronSSL.sh +++ b/ssl/cronSSL.sh @@ -3,6 +3,7 @@ installpath="$HOME" domain=$1 host="$(hostname | cut -d '.' -f 1)" +user=$(whoami) sno=${host/s/web} webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') resp=$(devil ssl www add $webIp le le $domain) @@ -18,7 +19,7 @@ if [[ "$resp" =~ .*succesfully.*$ ]]; then TELEGRAM_TOKEN=$(jq -r ".telegram_token" "$config") TELEGRAM_USERID=$(jq -r ".telegram_userid" "$config") if [[ -n "$TELEGRAM_TOKEN" && -n "$TELEGRAM_USERID" ]]; then - msg="你的域名($domain)申请的SSL证书已下发,请查收!" + msg="Host:$host, user:$user, 你的域名($domain)申请的SSL证书已下发,请查收!" cd $installpath/serv00-play export TELEGRAM_TOKEN="$TELEGRAM_TOKEN" TELEGRAM_USERID="$TELEGRAM_USERID" ./tgsend.sh "$msg" diff --git a/tgsend.sh b/tgsend.sh index 4eaa6008..0334d714 100755 --- a/tgsend.sh +++ b/tgsend.sh @@ -1,17 +1,61 @@ #!/bin/bash message_text=$1 -#解析模式,可选HTML或Markdown -MODE='HTML' -#api接口 + +toTGMsg() { + local msg=$1 + local title="*Serv00-play通知*" + local host_icon="🖥️" + local user_icon="👤" + local time_icon="⏰" + local notify_icon="📢" + + # 获取当前时间 + local current_time=$(date "+%Y-%m-%d %H:%M:%S") + + if [[ "$msg" != Host:* ]]; then + local formatted_msg="${title} \n\n" + formatted_msg+="${time_icon} *时间:* ${current_time} \n" + formatted_msg+="${notify_icon} *通知内容:* \n$msg \n\n" + echo -e "$formatted_msg" + return + fi + + local host=$(echo "$msg" | sed -n 's/.*Host:\([^,]*\).*/\1/p' | xargs) + local user=$(echo "$msg" | sed -n 's/.*user:\([^,]*\).*/\1/p' | xargs) + local notify_content=$(echo "$msg" | sed -E 's/.*user:[^,]*,//' | xargs) + + # 格式化消息内容,Markdown 换行使用两个空格 + 换行 + local formatted_msg="${title} \n\n" + formatted_msg+="${host_icon} *主机:* ${host} \n" + formatted_msg+="${user_icon} *用户:* ${user} \n" + formatted_msg+="${time_icon} *时间:* ${current_time} \n\n" + formatted_msg+="${notify_icon} *通知内容:* ${notify_content} \n\n" + + echo -e "$formatted_msg" # 使用 -e 选项以确保换行符生效 +} + telegramBotToken=${TELEGRAM_TOKEN} telegramBotUserId=${TELEGRAM_USERID} - +formatted_msg=$(toTGMsg "$message_text") +button_url=${BUTTON_URL:-"https://www.youtube.com/@frankiejun8965"} URL="https://api.telegram.org/bot${telegramBotToken}/sendMessage" +reply_markup='{ + "inline_keyboard": [ + [ + {"text": "点击查看", "url": "'"${button_url}"'"} + ] + ] + }' + if [[ -z ${telegramBotToken} ]]; then echo "未配置TG推送" else - res=$(timeout 20s curl -s -X POST $URL -d chat_id=${telegramBotUserId} -d parse_mode=${MODE} -d text="${message_text}") + res=$(curl -s -X POST "https://api.telegram.org/bot${telegramBotToken}/sendMessage" \ + -d chat_id="${telegramBotUserId}" \ + -d parse_mode="Markdown" \ + -d text="$formatted_msg" \ + -d reply_markup="$reply_markup") if [ $? == 124 ]; then echo 'TG_api请求超时,请检查网络是否重启完成并是否能够访问TG' exit 1 From ea31ed31c1996dc19cd0d05361f8eb8f37f14ec4 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 28 Dec 2024 17:26:24 +0800 Subject: [PATCH 007/210] =?UTF-8?q?=E7=BE=8E=E5=8C=96=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keepalive.sh b/keepalive.sh index f5901221..66e602dd 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -60,7 +60,7 @@ makeMsgConfig(){ "telegram_userid": "$TELEGRAM_USERID", "wxsendkey": "$WXSENDKEY", "sendtype": "$sendtype", - "button_url: "$BUTTON_URL" + "button_url": "$BUTTON_URL" } EOF } From 57d28eed7455253c5d6afafa20fd3bd776702e89 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 28 Dec 2024 17:30:38 +0800 Subject: [PATCH 008/210] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/keepalive.sh b/keepalive.sh index 66e602dd..590d4dad 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -76,7 +76,6 @@ autoUpdate() { #重新给各个脚本赋权限 chmod +x ./start.sh chmod +x ./keepalive.sh - chmod +x ${installpath}/serv00-play/vless/start.sh chmod +x ${installpath}/serv00-play/singbox/start.sh chmod +x ${installpath}/serv00-play/singbox/killsing-box.sh chmod +x ${installpath}/serv00-play/ssl/cronSSL.sh From a0cf9bac9c5d43719fb1ea4627b573efe8d99d3f Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 28 Dec 2024 17:39:04 +0800 Subject: [PATCH 009/210] =?UTF-8?q?=E7=BE=8E=E5=8C=96=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index 590d4dad..e2b1b65a 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -170,11 +170,15 @@ startWebSSH(){ } #main +host=$(hostname) +user=$(whoami) + if [ -n "$autoUp" ]; then echo "run autoUpdate" autoUpdate fi +echo "Host:$host, user:$user" cd ${installpath}/serv00-play/ if [ ! -f config.json ]; then echo "未配置保活项目,请先行配置!" @@ -219,15 +223,14 @@ else fi if [ -z "$BUTTON_URL" ]; then - echo "从msg.json获取 BUTTON_URL" + echo "从msg.json获取 button_url" BUTTON_URL=$(jq -r ".button_url // empty" msg.json) fi export TELEGRAM_TOKEN TELEGRAM_USERID WXSENDKEY sendtype BUTTON_URL #echo "最终TELEGRAM_TOKEN=$TELEGRAM_TOKEN,TELEGRAM_USERID=$TELEGRAM_USERID" -host=$(hostname) -user=$(whoami) + for obj in "${monitor[@]}"; do msg="" From d79fad60b9f0ed3be32672ffce7fef55d537ca22 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 28 Dec 2024 17:45:26 +0800 Subject: [PATCH 010/210] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8F=98=E9=87=8FBUT?= =?UTF-8?q?TON=5FURL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6871e676..bf90ec3a 100644 --- a/README.md +++ b/README.md @@ -15,13 +15,14 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st ## 变量说明 -| 变量名 | 示例 | 备注 | -| --------------- | ------ | ---------------------------------------- | -| HOSTS_JSON | 见示例 | 可存放 n 个服务器信息 | -| TELEGRAM_TOKEN | 略 | telegram 机器人的 token | -| TELEGRAM_USERID | 略 | 待通知的 teltegram 用户 ID | -| WXSENDKEY | 略 | server 酱的 sendkey,用于接收微信消息 | -| SENDTYPE | 3 | 选择推送方式,1.Telegram, 2.微信, 3.都有 | +| 变量名 | 示例 | 备注 | +| --------------- | ------ | -------------------------------------------------------- | +| HOSTS_JSON | 见示例 | 可存放 n 个服务器信息 (必选) | +| TELEGRAM_TOKEN | 略 | telegram 机器人的 token (发送 TG 消息必选) | +| TELEGRAM_USERID | 略 | 待通知的 teltegram 用户 ID (发送 TG 消息必选) | +| WXSENDKEY | 略 | server 酱的 sendkey,用于接收微信消息 (发送微信消息必选) | +| SENDTYPE | 3 | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | +| BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选) | 各主机保活时可不必输入消息通知参数,由 github 同一配置参数。 From 1d7c0b9e2924ed9dea838a1c0d0685af2a4e0f04 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 31 Dec 2024 18:08:07 +0800 Subject: [PATCH 011/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0button=5Furl=E7=9A=84?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- keepalive.sh | 689 ++++++++++++++++++++++++++------------------------- revive.sh | 78 +++--- tgsend.sh | 175 +++++++------ 4 files changed, 507 insertions(+), 438 deletions(-) mode change 100755 => 100644 tgsend.sh diff --git a/.gitignore b/.gitignore index 2f3cc09a..a24cf7a8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,10 +2,11 @@ *.json *.out *.js +*test a.* *.swp vmess/node_modules vmess/list vmess/cloudflared vless/node_modules -tools/ \ No newline at end of file +tools/ diff --git a/keepalive.sh b/keepalive.sh index e2b1b65a..85d8b5f5 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -1,334 +1,355 @@ -#!/bin/bash - - -installpath="$HOME" -source ${installpath}/serv00-play/utils.sh - -autoUp=$1 -sendtype=$2 -TELEGRAM_TOKEN="$3" -TELEGRAM_USERID="$4" -WXSENDKEY="$5" -BUTTON_URL="$6" - - -checkHy2Alive() { - if ps aux | grep serv00sb | grep -v "grep" >/dev/null; then - return 0 - else - return 1 - fi - -} - - -sendMsg() { - local msg=$1 - if [ -n "$msg" ]; then - cd $installpath/serv00-play - msg="Host:$host, user:$user, $msg" - if [ "$sendtype" == "1" ]; then - ./tgsend.sh "$msg" - elif [ "$sendtype" == "2" ]; then - ./wxsend.sh "$msg" - elif [ "$sendtype" == "3" ]; then - ./tgsend.sh "$msg" - ./wxsend.sh "$msg" - fi - fi -} - -checkResetCron() { - echo "run checkResetCron" - local msg="" - cd ${installpath}/serv00-play/ - crontab -l | grep keepalive - if ! crontab -l | grep keepalive; then - msg="crontab记录被删过,并且已重建。" - tm=$(jq -r ".chktime" config.json) - addCron "$tm" - sendMsg $msg - fi -} - -#构建消息配置文件 -makeMsgConfig(){ - echo "构造消息配置文件..." - cat > msg.json </dev/null 2>&1 & - -} - -startMtg() { - cd ${installpath}/serv00-play/dmtg - - config="config.json" - - secret=$(jq -r ".secret" $config) - port=$(jq -r ".port" $config) - cmd="nohup ./mtg simple-run -n 1.1.1.1 -t 30s -a 1MB 0.0.0.0:$port $secret -c 8192 --prefer-ip=\"prefer-ipv6\" >/dev/null 2>&1 &" - eval "$cmd" - sleep 3 - if checkMtgAlive; then - echo "启动成功" - else - echo "启动失败,请检查进程" - fi - -} - - -startAlist() { - alistpath="${installpath}/serv00-play/alist" - - if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then - echo "正在启动alist..." - cd $alistpath - domain=$(jq -r ".domain" config.json) - - if checkProcAlive "alist"; then - echo "alist已启动,请勿重复启动!" - else - nohup ./alist server >/dev/null 2>&1 & - sleep 3 - if ! checkProcAlive "alist"; then - red "启动失败,请检查!" - return 1 - else - echo "启动成功!" - fi - fi - else - red "请先行安装再启动!" - return - fi - -} - -startSunPanel(){ - cd ${installpath}/serv00-play/sunpanel - cmd="nohup ./sun-panel >/dev/null 2>&1 &" - eval "$cmd" -} - -startWebSSH(){ - cd ${installpath}/serv00-play/webssh - ssh_port=$(jq -r ".port" config.json) - cmd="nohup ./wssh --port=$ssh_port --fbidhttp=False --xheaders=False --encoding='utf-8' --delay=10 >/dev/null 2>&1 &" - eval "$cmd" -} - -#main -host=$(hostname) -user=$(whoami) - -if [ -n "$autoUp" ]; then - echo "run autoUpdate" - autoUpdate -fi - -echo "Host:$host, user:$user" -cd ${installpath}/serv00-play/ -if [ ! -f config.json ]; then - echo "未配置保活项目,请先行配置!" - exit 0 -fi - -monitor=($(jq -r ".item[]" config.json)) - -tg_token=$(jq -r ".telegram_token // empty" config.json) - -if [[ -z "$tg_token" ]]; then - echo "从msg.json获取 telegram_token" - TELEGRAM_TOKEN=$(jq -r '.telegram_token // empty' msg.json) -else - TELEGRAM_TOKEN=$tg_token -fi - -tg_userid=$(jq -r ".telegram_userid // empty" config.json) - -if [[ -z "$tg_userid" ]]; then - echo "从msg.json获取telegram_userid" - TELEGRAM_USERID=$(jq -r ".telegram_userid // empty" msg.json) -else - TELEGRAM_USERID=$tg_userid -fi - -wx_sendkey=$(jq -r ".wxsendkey // empty" config.json) - -if [[ -z "$wx_sendkey" ]]; then - echo "从msg.json获取wxsendkey" - WXSENDKEY=$(jq -r ".wxsendkey // empty" msg.json) -else - WXSENDKEY=$wx_sendkey -fi - -send_type=$(jq -r ".sendtype // empty" config.json) -if [ -z "$send_type" ]; then - echo "从msg.json获取 sendtype" - sendtype=$(jq -r ".sendtype // empty" msg.json) -else - sendtype=$send_type -fi - -if [ -z "$BUTTON_URL" ]; then - echo "从msg.json获取 button_url" - BUTTON_URL=$(jq -r ".button_url // empty" msg.json) -fi - -export TELEGRAM_TOKEN TELEGRAM_USERID WXSENDKEY sendtype BUTTON_URL - -#echo "最终TELEGRAM_TOKEN=$TELEGRAM_TOKEN,TELEGRAM_USERID=$TELEGRAM_USERID" - - -for obj in "${monitor[@]}"; do - msg="" - # echo "obj= $obj" - if [ "$obj" == "sun-panel" ]; then - if ! checkProcAlive "sun-panel"; then - startSunPanel - sleep 3 - if ! checkProcAlive "sun-panel"; then - msg="sun-panel restarted failure." - else - msg="sun-panel restarted successfully." - fi - fi - elif [ "$obj" == "webssh" ]; then - if ! checkProcAlive "wssh"; then - startWebSSH - sleep 5 - if ! checkProcAlive "wssh"; then - msg="webssh restarted failure." - else - msg="webssh restarted successfully." - fi - fi - elif [ "$obj" == "vmess" ]; then - if ! checkvmessAlive; then - cd ${installpath}/serv00-play/singbox - chmod +x ./start.sh && ./start.sh 1 keep - sleep 5 - if ! checkvmessAlive; then - msg="vmess restarted failure." - else - msg="vmess restarted successfully." - fi - fi - #hy2和vmess+ws都只需要启动serv00sb,所以可以这么写 - elif [[ "$obj" == "hy2/vmess+ws" || "$obj" == "hy2" ]]; then - if ! checkHy2Alive; then - #echo "重启serv00sb中..." - cd ${installpath}/serv00-play/singbox - chmod +x ./start.sh && ./start.sh 2 keep - sleep 5 - if ! checkHy2Alive; then - msg="hy2 restarted failure." - else - msg="hy2 restarted successfully." - fi - fi - elif [ "$obj" == "nezha-agent" ]; then - if ! checknezhaAgentAlive; then - cd ${installpath}/serv00-play/nezha - startNeZhaAgent - sleep 5 - if ! checknezhaAgentAlive; then - msg="nezha-agent restarted failure." - else - msg="nezha-agent restarted successfully." - fi - fi - elif [ "$obj" == "mtg" ]; then - if ! checkMtgAlive; then - cd ${installpath}/serv00-play/dmtg - startMtg - sleep 5 - if ! checkMtgAlive; then - msg="mtproto restarted failure." - else - msg="mtproto restarted successfully." - fi - fi - elif [ "$obj" == "alist" ]; then - if ! checkProcAlive "alist"; then - startAlist - sleep 5 - if ! checkProcAlive "alist"; then - msg="alist restarted failure." - else - msg="alist restarted successfully." - fi - fi - elif [ "$obj" == "wssh" ]; then - if ! checkProcAlive wssh; then - startAlist - sleep 5 - if ! checkAlistAlive; then - msg="alist restarted failure." - else - msg="alist restarted successfully." - fi - fi - else - continue - fi - - sendMsg "$msg" - -done - -if [ ${#monitor[@]} -gt 0 ]; then - checkResetCron -fi +#!/bin/bash + + +installpath="$HOME" +source ${installpath}/serv00-play/utils.sh + +autoUp=$1 +sendtype=$2 +TELEGRAM_TOKEN="$3" +TELEGRAM_USERID="$4" +WXSENDKEY="$5" +BUTTON_URL="$6" +PASS="$7" + +#echo "TELEGRAM_TOKEN=$TELEGRAM_TOKEN, TELEGRAM_USERID=$TELEGRAM_USERID,WXSENDKEY=$WXSENDKEY,BUTTON_URL=$BUTTON_URL,pass=$PASS" + +checkHy2Alive() { + if ps aux | grep serv00sb | grep -v "grep" >/dev/null; then + return 0 + else + return 1 + fi + +} + + +sendMsg() { + local msg=$1 + if [ -n "$msg" ]; then + cd $installpath/serv00-play + msg="Host:$host, user:$user, $msg" + if [ "$sendtype" == "1" ]; then + ./tgsend.sh "$msg" + elif [ "$sendtype" == "2" ]; then + ./wxsend.sh "$msg" + elif [ "$sendtype" == "3" ]; then + ./tgsend.sh "$msg" + ./wxsend.sh "$msg" + fi + fi +} + +checkResetCron() { + echo "run checkResetCron" + local msg="" + cd ${installpath}/serv00-play/ + crontab -l | grep keepalive + if ! crontab -l | grep keepalive; then + msg="crontab记录被删过,并且已重建。" + tm=$(jq -r ".chktime" config.json) + addCron "$tm" + sendMsg $msg + fi +} + +#构建消息配置文件 +makeMsgConfig(){ + echo "构造消息配置文件..." + cat > msg.json </dev/null 2>&1 & + +} + +startMtg() { + cd ${installpath}/serv00-play/dmtg + + config="config.json" + + secret=$(jq -r ".secret" $config) + port=$(jq -r ".port" $config) + cmd="nohup ./mtg simple-run -n 1.1.1.1 -t 30s -a 1MB 0.0.0.0:$port $secret -c 8192 --prefer-ip=\"prefer-ipv6\" >/dev/null 2>&1 &" + eval "$cmd" + sleep 3 + if checkMtgAlive; then + echo "启动成功" + else + echo "启动失败,请检查进程" + fi + +} + + +startAlist() { + alistpath="${installpath}/serv00-play/alist" + + if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then + echo "正在启动alist..." + cd $alistpath + domain=$(jq -r ".domain" config.json) + + if checkProcAlive "alist"; then + echo "alist已启动,请勿重复启动!" + else + nohup ./alist server >/dev/null 2>&1 & + sleep 3 + if ! checkProcAlive "alist"; then + red "启动失败,请检查!" + return 1 + else + echo "启动成功!" + fi + fi + else + red "请先行安装再启动!" + return + fi + +} + +startSunPanel(){ + cd ${installpath}/serv00-play/sunpanel + cmd="nohup ./sun-panel >/dev/null 2>&1 &" + eval "$cmd" +} + +startWebSSH(){ + cd ${installpath}/serv00-play/webssh + ssh_port=$(jq -r ".port" config.json) + cmd="nohup ./wssh --port=$ssh_port --fbidhttp=False --xheaders=False --encoding='utf-8' --delay=10 >/dev/null 2>&1 &" + eval "$cmd" +} + +#main +host=$(hostname) +user=$(whoami) + +echo "正在调用keepalive.sh" +if [[ "$autoUp" == "autoupdate" ]]; then + echo "run autoUpdate" + autoUpdate +fi + + +echo "Host:$host, user:$user" +cd ${installpath}/serv00-play/ + +if [[ -n "$autoUp" ]];then + makeMsgConfig +fi +if [ ! -f config.json ]; then + echo "未配置保活项目,请先行配置!" + exit 0 +fi + +monitor=($(jq -r ".item[]" config.json)) + +tg_token=$(jq -r ".telegram_token // empty" config.json) + +if [[ -z "$tg_token" ]]; then + echo "从msg.json获取 telegram_token" + TELEGRAM_TOKEN=$(jq -r '.telegram_token // empty' msg.json) +else + TELEGRAM_TOKEN=$tg_token +fi + +tg_userid=$(jq -r ".telegram_userid // empty" config.json) + +if [[ -z "$tg_userid" ]]; then + echo "从msg.json获取telegram_userid" + if [[ -e "msg.json" ]]; then + TELEGRAM_USERID=$(jq -r ".telegram_userid // empty" msg.json) + fi +else + TELEGRAM_USERID=$tg_userid +fi + +wx_sendkey=$(jq -r ".wxsendkey // empty" config.json) + +if [[ -z "$wx_sendkey" ]]; then + echo "从msg.json获取wxsendkey" + if [[ -e "msg.json" ]]; then + WXSENDKEY=$(jq -r ".wxsendkey // empty" msg.json) + fi +else + WXSENDKEY=$wx_sendkey +fi + +send_type=$(jq -r ".sendtype // empty" config.json) +if [ -z "$send_type" ]; then + echo "从msg.json获取 sendtype" + if [[ -e "msg.json" ]]; then + sendtype=$(jq -r ".sendtype // empty" msg.json) + fi +else + sendtype=$send_type +fi + +if [ -z "$BUTTON_URL" ]; then + echo "从msg.json获取 button_url" + BUTTON_URL=$(jq -r ".button_url // empty" msg.json) +fi + +if [ -z "$PASS" ]; then + echo "从msg.json获取 password" + PASS=$(jq -r ".password // empty" msg.json) +fi + +export TELEGRAM_TOKEN TELEGRAM_USERID WXSENDKEY sendtype BUTTON_URL PASS + +#echo "最终TELEGRAM_TOKEN=$TELEGRAM_TOKEN,TELEGRAM_USERID=$TELEGRAM_USERID" + + +for obj in "${monitor[@]}"; do + msg="" + # echo "obj= $obj" + if [ "$obj" == "sun-panel" ]; then + if ! checkProcAlive "sun-panel"; then + startSunPanel + sleep 3 + if ! checkProcAlive "sun-panel"; then + msg="sun-panel restarted failure." + else + msg="sun-panel restarted successfully." + fi + fi + elif [ "$obj" == "webssh" ]; then + if ! checkProcAlive "wssh"; then + startWebSSH + sleep 5 + if ! checkProcAlive "wssh"; then + msg="webssh restarted failure." + else + msg="webssh restarted successfully." + fi + fi + elif [ "$obj" == "vmess" ]; then + if ! checkvmessAlive; then + cd ${installpath}/serv00-play/singbox + chmod +x ./start.sh && ./start.sh 1 keep + sleep 5 + if ! checkvmessAlive; then + msg="vmess restarted failure." + else + msg="vmess restarted successfully." + fi + fi + #hy2和vmess+ws都只需要启动serv00sb,所以可以这么写 + elif [[ "$obj" == "hy2/vmess+ws" || "$obj" == "hy2" ]]; then + if ! checkHy2Alive; then + #echo "重启serv00sb中..." + cd ${installpath}/serv00-play/singbox + chmod +x ./start.sh && ./start.sh 2 keep + sleep 5 + if ! checkHy2Alive; then + msg="hy2 restarted failure." + else + msg="hy2 restarted successfully." + fi + fi + elif [ "$obj" == "nezha-agent" ]; then + if ! checknezhaAgentAlive; then + cd ${installpath}/serv00-play/nezha + startNeZhaAgent + sleep 5 + if ! checknezhaAgentAlive; then + msg="nezha-agent restarted failure." + else + msg="nezha-agent restarted successfully." + fi + fi + elif [ "$obj" == "mtg" ]; then + if ! checkMtgAlive; then + cd ${installpath}/serv00-play/dmtg + startMtg + sleep 5 + if ! checkMtgAlive; then + msg="mtproto restarted failure." + else + msg="mtproto restarted successfully." + fi + fi + elif [ "$obj" == "alist" ]; then + if ! checkProcAlive "alist"; then + startAlist + sleep 5 + if ! checkProcAlive "alist"; then + msg="alist restarted failure." + else + msg="alist restarted successfully." + fi + fi + elif [ "$obj" == "wssh" ]; then + if ! checkProcAlive wssh; then + startAlist + sleep 5 + if ! checkAlistAlive; then + msg="alist restarted failure." + else + msg="alist restarted successfully." + fi + fi + else + continue + fi + + sendMsg "$msg" + +done + +if [ ${#monitor[@]} -gt 0 ]; then + checkResetCron +fi diff --git a/revive.sh b/revive.sh index 33388e01..7dad70dd 100755 --- a/revive.sh +++ b/revive.sh @@ -1,34 +1,44 @@ -#!/bin/bash - -#HOSTS_JSON='{ -#"info": [ -#{ -# "host": "s2.serv00.com", -# "username": "xloong", -# "port": 22, -# "password": "abc123" -#} -#] -#}' -#echo "host info:$HOSTS_JSON" -# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 -hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) - -for info in "${hosts_info[@]}"; do - user=$(echo $info | jq -r ".username") - host=$(echo $info | jq -r ".host") - port=$(echo $info | jq -r ".port") - pass=$(echo $info | jq -r ".password") - - script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} ${TELEGRAM_TOKEN} ${TELEGRAM_USERID} ${WXSENDKEY} ${BUTTON_URL}" - - output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") - - echo "output:$output" - if echo "$output" | grep -q "更新完毕"; then - echo "登录成功" - else - echo "登录失败" - ./tgsend.sh "Host:$host,user:$user,登录失败请检查!" - fi -done +#!/bin/bash + +#HOSTS_JSON='{ +#"info": [ +#{ +# "host": "s2.serv00.com", +# "username": "xloong", +# "port": 22, +# "password": "abc123" +#} +#] +#}' +#echo "host info:$HOSTS_JSON" +# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 +AUTOUPDATE=${AUTOUPDATE:-Y} +SENDTYPE=${SENDTYPE:-null} +TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} +TELEGRAM_USERID=${TELEGRAM_USERID:-null} +WXSENDKEY=${WXSENDKEY:-null} +BUTTON_URL=${BUTTON_URL:-null} + +hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) + +for info in "${hosts_info[@]}"; do + user=$(echo $info | jq -r ".username") + host=$(echo $info | jq -r ".host") + port=$(echo $info | jq -r ".port") + pass=$(echo $info | jq -r ".password") + + if [[ "$AUTOUPDATE" == "Y" ]]; then + script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" + else + script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" + fi + output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") + + echo "output:$output" + if echo "$output" | grep -q "keepalive.sh"; then + echo "登录成功" + else + echo "登录失败" + ./tgsend.sh "Host:$host,user:$user,登录失败请检查!" + fi +done diff --git a/tgsend.sh b/tgsend.sh old mode 100755 new mode 100644 index 0334d714..a30992d1 --- a/tgsend.sh +++ b/tgsend.sh @@ -1,69 +1,106 @@ -#!/bin/bash - -message_text=$1 - -toTGMsg() { - local msg=$1 - local title="*Serv00-play通知*" - local host_icon="🖥️" - local user_icon="👤" - local time_icon="⏰" - local notify_icon="📢" - - # 获取当前时间 - local current_time=$(date "+%Y-%m-%d %H:%M:%S") - - if [[ "$msg" != Host:* ]]; then - local formatted_msg="${title} \n\n" - formatted_msg+="${time_icon} *时间:* ${current_time} \n" - formatted_msg+="${notify_icon} *通知内容:* \n$msg \n\n" - echo -e "$formatted_msg" - return - fi - - local host=$(echo "$msg" | sed -n 's/.*Host:\([^,]*\).*/\1/p' | xargs) - local user=$(echo "$msg" | sed -n 's/.*user:\([^,]*\).*/\1/p' | xargs) - local notify_content=$(echo "$msg" | sed -E 's/.*user:[^,]*,//' | xargs) - - # 格式化消息内容,Markdown 换行使用两个空格 + 换行 - local formatted_msg="${title} \n\n" - formatted_msg+="${host_icon} *主机:* ${host} \n" - formatted_msg+="${user_icon} *用户:* ${user} \n" - formatted_msg+="${time_icon} *时间:* ${current_time} \n\n" - formatted_msg+="${notify_icon} *通知内容:* ${notify_content} \n\n" - - echo -e "$formatted_msg" # 使用 -e 选项以确保换行符生效 -} - -telegramBotToken=${TELEGRAM_TOKEN} -telegramBotUserId=${TELEGRAM_USERID} -formatted_msg=$(toTGMsg "$message_text") -button_url=${BUTTON_URL:-"https://www.youtube.com/@frankiejun8965"} -URL="https://api.telegram.org/bot${telegramBotToken}/sendMessage" -reply_markup='{ - "inline_keyboard": [ - [ - {"text": "点击查看", "url": "'"${button_url}"'"} - ] - ] - }' - -if [[ -z ${telegramBotToken} ]]; then - echo "未配置TG推送" -else - res=$(curl -s -X POST "https://api.telegram.org/bot${telegramBotToken}/sendMessage" \ - -d chat_id="${telegramBotUserId}" \ - -d parse_mode="Markdown" \ - -d text="$formatted_msg" \ - -d reply_markup="$reply_markup") - if [ $? == 124 ]; then - echo 'TG_api请求超时,请检查网络是否重启完成并是否能够访问TG' - exit 1 - fi - resSuccess=$(echo "$res" | jq -r ".ok") - if [[ $resSuccess = "true" ]]; then - echo "TG推送成功" - else - echo "TG推送失败,请检查TG机器人token和ID" - fi -fi +#!/bin/bash + +message_text=$1 + +replaceValue() { + local url=$1 + local target=$2 + local value=$3 + local result + result=$(printf '%s' "$url" | sed "s|#${target}|${value//&/\\&}|g") + echo "$result" +} + +toBase64() { + echo -n "$1" | base64 +} + +urlencode() { + local input="$1" + local output="" + local length=${#input} + for ((i = 0; i < length; i++)); do + local char="${input:i:1}" + case "$char" in + [a-zA-Z0-9.~_-]) output+="$char" ;; + *) output+="$(printf '%%%02X' "'$char")" ;; + esac + done + echo "$output" +} + +toTGMsg() { + local msg=$1 + local title="*Serv00-play通知*" + local host_icon="🖥️" + local user_icon="👤" + local time_icon="⏰" + local notify_icon="📢" + + # 获取当前时间 + local current_time=$(date "+%Y-%m-%d %H:%M:%S") + + if [[ "$msg" != Host:* ]]; then + local formatted_msg="${title} \n\n" + formatted_msg+="${time_icon} *时间:* ${current_time} \n" + formatted_msg+="${notify_icon} *通知内容:* \n$msg \n\n" + echo -e "$formatted_msg" + return + fi + + local host=$(echo "$msg" | sed -n 's/.*Host:\([^,]*\).*/\1/p' | xargs) + local user=$(echo "$msg" | sed -n 's/.*user:\([^,]*\).*/\1/p' | xargs) + local notify_content=$(echo "$msg" | sed -E 's/.*user:[^,]*,//' | xargs) + + # 格式化消息内容,Markdown 换行使用两个空格 + 换行 + local formatted_msg="${title} \n\n" + formatted_msg+="${host_icon} *主机:* ${host} \n" + formatted_msg+="${user_icon} *用户:* ${user} \n" + formatted_msg+="${time_icon} *时间:* ${current_time} \n\n" + formatted_msg+="${notify_icon} *通知内容:* ${notify_content} \n\n" + + echo -e "$formatted_msg" # 使用 -e 选项以确保换行符生效 +} + +telegramBotToken=${TELEGRAM_TOKEN} +telegramBotUserId=${TELEGRAM_USERID} +formatted_msg=$(toTGMsg "$message_text") +button_url=${BUTTON_URL:-"https://www.youtube.com/@frankiejun8965"} +URL="https://api.telegram.org/bot${telegramBotToken}/sendMessage" +host=$(hostname) +user=$(whoami) +pass=$(toBase64 $PASS) +button_url=$(replaceValue $button_url HOST $host) +button_url=$(replaceValue $button_url USER $user) +button_url=$(replaceValue $button_url PASS $pass) +encoded_url=$(urlencode "$button_url") +#echo "encoded_url: $encoded_url" +reply_markup='{ + "inline_keyboard": [ + [ + {"text": "点击查看", "url": "'"${encoded_url}"'"} + ] + ] + }' +#echo "reply_markup: $reply_markup" +#echo "telegramBotToken:$telegramBotToken,telegramBotUserId:$telegramBotUserId" +if [[ -z ${telegramBotToken} ]]; then + echo "未配置TG推送" +else + res=$(curl -s -X POST "https://api.telegram.org/bot${telegramBotToken}/sendMessage" \ + -d chat_id="${telegramBotUserId}" \ + -d parse_mode="Markdown" \ + -d text="$formatted_msg" \ + -d reply_markup="$reply_markup") + if [ $? == 124 ]; then + echo 'TG_api请求超时,请检查网络是否重启完成并是否能够访问TG' + exit 1 + fi + #echo "res:$res" + resSuccess=$(echo "$res" | jq -r ".ok") + if [[ $resSuccess = "true" ]]; then + echo "TG推送成功" + else + echo "TG推送失败,请检查TG机器人token和ID" + fi +fi From 14ae13f222c4db6fbe90426a4370302e54741130 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 31 Dec 2024 18:10:37 +0800 Subject: [PATCH 012/210] . --- revive.sh | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/revive.sh b/revive.sh index 7dad70dd..4469c67c 100755 --- a/revive.sh +++ b/revive.sh @@ -1,17 +1,5 @@ #!/bin/bash -#HOSTS_JSON='{ -#"info": [ -#{ -# "host": "s2.serv00.com", -# "username": "xloong", -# "port": 22, -# "password": "abc123" -#} -#] -#}' -#echo "host info:$HOSTS_JSON" -# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 AUTOUPDATE=${AUTOUPDATE:-Y} SENDTYPE=${SENDTYPE:-null} TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} @@ -19,6 +7,7 @@ TELEGRAM_USERID=${TELEGRAM_USERID:-null} WXSENDKEY=${WXSENDKEY:-null} BUTTON_URL=${BUTTON_URL:-null} +# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) for info in "${hosts_info[@]}"; do From e58e13f8a91234daae5093833a29d9499c5deba5 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 31 Dec 2024 18:17:18 +0800 Subject: [PATCH 013/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0AUTOUPDATE=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 41ba1065..232a584f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -28,6 +28,7 @@ jobs: WXSENDKEY: ${{secrets.WXSENDKEY}} SENDTYPE: ${{secrets.SENDTYPE}} BUTTON_URL: ${{secrets.BUTTON_URL}} + AUTOUPDATE: ${{vars.AUTOUPDATE}} run: | chmod +x ./revive.sh ./revive.sh From f8f49829ca821dd8e2c7b1d125256a514af55400 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 31 Dec 2024 18:23:23 +0800 Subject: [PATCH 014/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0AUTOUPDATE=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index bf90ec3a..fc32ddf2 100644 --- a/README.md +++ b/README.md @@ -15,14 +15,15 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st ## 变量说明 -| 变量名 | 示例 | 备注 | -| --------------- | ------ | -------------------------------------------------------- | -| HOSTS_JSON | 见示例 | 可存放 n 个服务器信息 (必选) | -| TELEGRAM_TOKEN | 略 | telegram 机器人的 token (发送 TG 消息必选) | -| TELEGRAM_USERID | 略 | 待通知的 teltegram 用户 ID (发送 TG 消息必选) | -| WXSENDKEY | 略 | server 酱的 sendkey,用于接收微信消息 (发送微信消息必选) | -| SENDTYPE | 3 | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | -| BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选) | +| 变量名 | 示例 | 备注 | +| --------------- | ------ | -------------------------------------------------------------------------------- | +| HOSTS_JSON | 见示例 | 可存放 n 个服务器信息 (必选) | +| TELEGRAM_TOKEN | 略 | telegram 机器人的 token (发送 TG 消息必选) | +| TELEGRAM_USERID | 略 | 待通知的 teltegram 用户 ID (发送 TG 消息必选) | +| WXSENDKEY | 略 | server 酱的 sendkey,用于接收微信消息 (发送微信消息必选) | +| SENDTYPE | 3 | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | +| BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选),支持#HOST,#USER,#PASS 等变量。 | +| AUTOUPDATE | Y | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | 各主机保活时可不必输入消息通知参数,由 github 同一配置参数。 From 602fa0207b0dc9bf177a1c1b3c1a1ef2a63ba1cc Mon Sep 17 00:00:00 2001 From: root Date: Tue, 31 Dec 2024 18:37:53 +0800 Subject: [PATCH 015/210] .. --- revive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/revive.sh b/revive.sh index 4469c67c..c306d374 100755 --- a/revive.sh +++ b/revive.sh @@ -6,7 +6,7 @@ TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} TELEGRAM_USERID=${TELEGRAM_USERID:-null} WXSENDKEY=${WXSENDKEY:-null} BUTTON_URL=${BUTTON_URL:-null} - + # 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) From 49a36f9b4c2864e5630cf203c94d36b123050dbf Mon Sep 17 00:00:00 2001 From: root Date: Tue, 31 Dec 2024 18:42:58 +0800 Subject: [PATCH 016/210] ... --- revive.sh | 66 +++++++++++++++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/revive.sh b/revive.sh index c306d374..2f1cce14 100755 --- a/revive.sh +++ b/revive.sh @@ -1,33 +1,33 @@ -#!/bin/bash - -AUTOUPDATE=${AUTOUPDATE:-Y} -SENDTYPE=${SENDTYPE:-null} -TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} -TELEGRAM_USERID=${TELEGRAM_USERID:-null} -WXSENDKEY=${WXSENDKEY:-null} -BUTTON_URL=${BUTTON_URL:-null} - -# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 -hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) - -for info in "${hosts_info[@]}"; do - user=$(echo $info | jq -r ".username") - host=$(echo $info | jq -r ".host") - port=$(echo $info | jq -r ".port") - pass=$(echo $info | jq -r ".password") - - if [[ "$AUTOUPDATE" == "Y" ]]; then - script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" - else - script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" - fi - output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") - - echo "output:$output" - if echo "$output" | grep -q "keepalive.sh"; then - echo "登录成功" - else - echo "登录失败" - ./tgsend.sh "Host:$host,user:$user,登录失败请检查!" - fi -done +#!/bin/bash + +AUTOUPDATE=${AUTOUPDATE:-Y} +SENDTYPE=${SENDTYPE:-null} +TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} +TELEGRAM_USERID=${TELEGRAM_USERID:-null} +WXSENDKEY=${WXSENDKEY:-null} +BUTTON_URL=${BUTTON_URL:-null} + +# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 +hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) + +for info in "${hosts_info[@]}"; do + user=$(echo $info | jq -r ".username") + host=$(echo $info | jq -r ".host") + port=$(echo $info | jq -r ".port") + pass=$(echo $info | jq -r ".password") + + if [[ "$AUTOUPDATE" == "Y" ]]; then + script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" + else + script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" + fi + output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") + + echo "output:$output" + if echo "$output" | grep -q "keepalive.sh"; then + echo "登录成功" + else + echo "登录失败" + ./tgsend.sh "Host:$host,user:$user,登录失败请检查!" + fi +done From ea51835e3f9404087d1c0cc1851420649be2127a Mon Sep 17 00:00:00 2001 From: root Date: Wed, 1 Jan 2025 11:07:50 +0800 Subject: [PATCH 017/210] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 710 +++++++++++++++++++++++++-------------------------- tgsend.sh | 212 +++++++-------- 2 files changed, 461 insertions(+), 461 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index 85d8b5f5..a6a764f1 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -1,355 +1,355 @@ -#!/bin/bash - - -installpath="$HOME" -source ${installpath}/serv00-play/utils.sh - -autoUp=$1 -sendtype=$2 -TELEGRAM_TOKEN="$3" -TELEGRAM_USERID="$4" -WXSENDKEY="$5" -BUTTON_URL="$6" -PASS="$7" - -#echo "TELEGRAM_TOKEN=$TELEGRAM_TOKEN, TELEGRAM_USERID=$TELEGRAM_USERID,WXSENDKEY=$WXSENDKEY,BUTTON_URL=$BUTTON_URL,pass=$PASS" - -checkHy2Alive() { - if ps aux | grep serv00sb | grep -v "grep" >/dev/null; then - return 0 - else - return 1 - fi - -} - - -sendMsg() { - local msg=$1 - if [ -n "$msg" ]; then - cd $installpath/serv00-play - msg="Host:$host, user:$user, $msg" - if [ "$sendtype" == "1" ]; then - ./tgsend.sh "$msg" - elif [ "$sendtype" == "2" ]; then - ./wxsend.sh "$msg" - elif [ "$sendtype" == "3" ]; then - ./tgsend.sh "$msg" - ./wxsend.sh "$msg" - fi - fi -} - -checkResetCron() { - echo "run checkResetCron" - local msg="" - cd ${installpath}/serv00-play/ - crontab -l | grep keepalive - if ! crontab -l | grep keepalive; then - msg="crontab记录被删过,并且已重建。" - tm=$(jq -r ".chktime" config.json) - addCron "$tm" - sendMsg $msg - fi -} - -#构建消息配置文件 -makeMsgConfig(){ - echo "构造消息配置文件..." - cat > msg.json </dev/null 2>&1 & - -} - -startMtg() { - cd ${installpath}/serv00-play/dmtg - - config="config.json" - - secret=$(jq -r ".secret" $config) - port=$(jq -r ".port" $config) - cmd="nohup ./mtg simple-run -n 1.1.1.1 -t 30s -a 1MB 0.0.0.0:$port $secret -c 8192 --prefer-ip=\"prefer-ipv6\" >/dev/null 2>&1 &" - eval "$cmd" - sleep 3 - if checkMtgAlive; then - echo "启动成功" - else - echo "启动失败,请检查进程" - fi - -} - - -startAlist() { - alistpath="${installpath}/serv00-play/alist" - - if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then - echo "正在启动alist..." - cd $alistpath - domain=$(jq -r ".domain" config.json) - - if checkProcAlive "alist"; then - echo "alist已启动,请勿重复启动!" - else - nohup ./alist server >/dev/null 2>&1 & - sleep 3 - if ! checkProcAlive "alist"; then - red "启动失败,请检查!" - return 1 - else - echo "启动成功!" - fi - fi - else - red "请先行安装再启动!" - return - fi - -} - -startSunPanel(){ - cd ${installpath}/serv00-play/sunpanel - cmd="nohup ./sun-panel >/dev/null 2>&1 &" - eval "$cmd" -} - -startWebSSH(){ - cd ${installpath}/serv00-play/webssh - ssh_port=$(jq -r ".port" config.json) - cmd="nohup ./wssh --port=$ssh_port --fbidhttp=False --xheaders=False --encoding='utf-8' --delay=10 >/dev/null 2>&1 &" - eval "$cmd" -} - -#main -host=$(hostname) -user=$(whoami) - -echo "正在调用keepalive.sh" -if [[ "$autoUp" == "autoupdate" ]]; then - echo "run autoUpdate" - autoUpdate -fi - - -echo "Host:$host, user:$user" -cd ${installpath}/serv00-play/ - -if [[ -n "$autoUp" ]];then - makeMsgConfig -fi -if [ ! -f config.json ]; then - echo "未配置保活项目,请先行配置!" - exit 0 -fi - -monitor=($(jq -r ".item[]" config.json)) - -tg_token=$(jq -r ".telegram_token // empty" config.json) - -if [[ -z "$tg_token" ]]; then - echo "从msg.json获取 telegram_token" - TELEGRAM_TOKEN=$(jq -r '.telegram_token // empty' msg.json) -else - TELEGRAM_TOKEN=$tg_token -fi - -tg_userid=$(jq -r ".telegram_userid // empty" config.json) - -if [[ -z "$tg_userid" ]]; then - echo "从msg.json获取telegram_userid" - if [[ -e "msg.json" ]]; then - TELEGRAM_USERID=$(jq -r ".telegram_userid // empty" msg.json) - fi -else - TELEGRAM_USERID=$tg_userid -fi - -wx_sendkey=$(jq -r ".wxsendkey // empty" config.json) - -if [[ -z "$wx_sendkey" ]]; then - echo "从msg.json获取wxsendkey" - if [[ -e "msg.json" ]]; then - WXSENDKEY=$(jq -r ".wxsendkey // empty" msg.json) - fi -else - WXSENDKEY=$wx_sendkey -fi - -send_type=$(jq -r ".sendtype // empty" config.json) -if [ -z "$send_type" ]; then - echo "从msg.json获取 sendtype" - if [[ -e "msg.json" ]]; then - sendtype=$(jq -r ".sendtype // empty" msg.json) - fi -else - sendtype=$send_type -fi - -if [ -z "$BUTTON_URL" ]; then - echo "从msg.json获取 button_url" - BUTTON_URL=$(jq -r ".button_url // empty" msg.json) -fi - -if [ -z "$PASS" ]; then - echo "从msg.json获取 password" - PASS=$(jq -r ".password // empty" msg.json) -fi - -export TELEGRAM_TOKEN TELEGRAM_USERID WXSENDKEY sendtype BUTTON_URL PASS - -#echo "最终TELEGRAM_TOKEN=$TELEGRAM_TOKEN,TELEGRAM_USERID=$TELEGRAM_USERID" - - -for obj in "${monitor[@]}"; do - msg="" - # echo "obj= $obj" - if [ "$obj" == "sun-panel" ]; then - if ! checkProcAlive "sun-panel"; then - startSunPanel - sleep 3 - if ! checkProcAlive "sun-panel"; then - msg="sun-panel restarted failure." - else - msg="sun-panel restarted successfully." - fi - fi - elif [ "$obj" == "webssh" ]; then - if ! checkProcAlive "wssh"; then - startWebSSH - sleep 5 - if ! checkProcAlive "wssh"; then - msg="webssh restarted failure." - else - msg="webssh restarted successfully." - fi - fi - elif [ "$obj" == "vmess" ]; then - if ! checkvmessAlive; then - cd ${installpath}/serv00-play/singbox - chmod +x ./start.sh && ./start.sh 1 keep - sleep 5 - if ! checkvmessAlive; then - msg="vmess restarted failure." - else - msg="vmess restarted successfully." - fi - fi - #hy2和vmess+ws都只需要启动serv00sb,所以可以这么写 - elif [[ "$obj" == "hy2/vmess+ws" || "$obj" == "hy2" ]]; then - if ! checkHy2Alive; then - #echo "重启serv00sb中..." - cd ${installpath}/serv00-play/singbox - chmod +x ./start.sh && ./start.sh 2 keep - sleep 5 - if ! checkHy2Alive; then - msg="hy2 restarted failure." - else - msg="hy2 restarted successfully." - fi - fi - elif [ "$obj" == "nezha-agent" ]; then - if ! checknezhaAgentAlive; then - cd ${installpath}/serv00-play/nezha - startNeZhaAgent - sleep 5 - if ! checknezhaAgentAlive; then - msg="nezha-agent restarted failure." - else - msg="nezha-agent restarted successfully." - fi - fi - elif [ "$obj" == "mtg" ]; then - if ! checkMtgAlive; then - cd ${installpath}/serv00-play/dmtg - startMtg - sleep 5 - if ! checkMtgAlive; then - msg="mtproto restarted failure." - else - msg="mtproto restarted successfully." - fi - fi - elif [ "$obj" == "alist" ]; then - if ! checkProcAlive "alist"; then - startAlist - sleep 5 - if ! checkProcAlive "alist"; then - msg="alist restarted failure." - else - msg="alist restarted successfully." - fi - fi - elif [ "$obj" == "wssh" ]; then - if ! checkProcAlive wssh; then - startAlist - sleep 5 - if ! checkAlistAlive; then - msg="alist restarted failure." - else - msg="alist restarted successfully." - fi - fi - else - continue - fi - - sendMsg "$msg" - -done - -if [ ${#monitor[@]} -gt 0 ]; then - checkResetCron -fi +#!/bin/bash + + +installpath="$HOME" +source ${installpath}/serv00-play/utils.sh + +autoUp=$1 +sendtype=$2 +TELEGRAM_TOKEN="$3" +TELEGRAM_USERID="$4" +WXSENDKEY="$5" +BUTTON_URL="$6" +PASS="$7" + +#echo "TELEGRAM_TOKEN=$TELEGRAM_TOKEN, TELEGRAM_USERID=$TELEGRAM_USERID,WXSENDKEY=$WXSENDKEY,BUTTON_URL=$BUTTON_URL,pass=$PASS" + +checkHy2Alive() { + if ps aux | grep serv00sb | grep -v "grep" >/dev/null; then + return 0 + else + return 1 + fi + +} + + +sendMsg() { + local msg=$1 + if [ -n "$msg" ]; then + cd $installpath/serv00-play + msg="Host:$host, user:$user, $msg" + if [ "$sendtype" == "1" ]; then + ./tgsend.sh "$msg" + elif [ "$sendtype" == "2" ]; then + ./wxsend.sh "$msg" + elif [ "$sendtype" == "3" ]; then + ./tgsend.sh "$msg" + ./wxsend.sh "$msg" + fi + fi +} + +checkResetCron() { + echo "run checkResetCron" + local msg="" + cd ${installpath}/serv00-play/ + crontab -l | grep keepalive + if ! crontab -l | grep keepalive; then + msg="crontab记录被删过,并且已重建。" + tm=$(jq -r ".chktime" config.json) + addCron "$tm" + sendMsg $msg + fi +} + +#构建消息配置文件 +makeMsgConfig(){ + echo "构造消息配置文件..." + cat > msg.json </dev/null 2>&1 & + +} + +startMtg() { + cd ${installpath}/serv00-play/dmtg + + config="config.json" + + secret=$(jq -r ".secret" $config) + port=$(jq -r ".port" $config) + cmd="nohup ./mtg simple-run -n 1.1.1.1 -t 30s -a 1MB 0.0.0.0:$port $secret -c 8192 --prefer-ip=\"prefer-ipv6\" >/dev/null 2>&1 &" + eval "$cmd" + sleep 3 + if checkMtgAlive; then + echo "启动成功" + else + echo "启动失败,请检查进程" + fi + +} + + +startAlist() { + alistpath="${installpath}/serv00-play/alist" + + if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then + echo "正在启动alist..." + cd $alistpath + domain=$(jq -r ".domain" config.json) + + if checkProcAlive "alist"; then + echo "alist已启动,请勿重复启动!" + else + nohup ./alist server >/dev/null 2>&1 & + sleep 3 + if ! checkProcAlive "alist"; then + red "启动失败,请检查!" + return 1 + else + echo "启动成功!" + fi + fi + else + red "请先行安装再启动!" + return + fi + +} + +startSunPanel(){ + cd ${installpath}/serv00-play/sunpanel + cmd="nohup ./sun-panel >/dev/null 2>&1 &" + eval "$cmd" +} + +startWebSSH(){ + cd ${installpath}/serv00-play/webssh + ssh_port=$(jq -r ".port" config.json) + cmd="nohup ./wssh --port=$ssh_port --fbidhttp=False --xheaders=False --encoding='utf-8' --delay=10 >/dev/null 2>&1 &" + eval "$cmd" +} + +#main +host=$(hostname) +user=$(whoami) + +echo "正在调用keepalive.sh" +if [[ "$autoUp" == "autoupdate" ]]; then + echo "run autoUpdate" + autoUpdate +fi + + +echo "Host:$host, user:$user" +cd ${installpath}/serv00-play/ + +if [[ -n "$autoUp" ]];then + makeMsgConfig +fi +if [ ! -f config.json ]; then + echo "未配置保活项目,请先行配置!" + exit 0 +fi + +monitor=($(jq -r ".item[]" config.json)) + +tg_token=$(jq -r ".telegram_token // empty" config.json) + +if [[ -z "$tg_token" ]]; then + echo "从msg.json获取 telegram_token" + TELEGRAM_TOKEN=$(jq -r '.telegram_token // empty' msg.json) +else + TELEGRAM_TOKEN=$tg_token +fi + +tg_userid=$(jq -r ".telegram_userid // empty" config.json) + +if [[ -z "$tg_userid" ]]; then + echo "从msg.json获取telegram_userid" + if [[ -e "msg.json" ]]; then + TELEGRAM_USERID=$(jq -r ".telegram_userid // empty" msg.json) + fi +else + TELEGRAM_USERID=$tg_userid +fi + +wx_sendkey=$(jq -r ".wxsendkey // empty" config.json) + +if [[ -z "$wx_sendkey" ]]; then + echo "从msg.json获取wxsendkey" + if [[ -e "msg.json" ]]; then + WXSENDKEY=$(jq -r ".wxsendkey // empty" msg.json) + fi +else + WXSENDKEY=$wx_sendkey +fi + +send_type=$(jq -r ".sendtype // empty" config.json) +if [ -z "$send_type" ]; then + echo "从msg.json获取 sendtype" + if [[ -e "msg.json" ]]; then + sendtype=$(jq -r ".sendtype // empty" msg.json) + fi +else + sendtype=$send_type +fi + +if [ -z "$BUTTON_URL" ]; then + echo "从msg.json获取 button_url" + BUTTON_URL=$(jq -r ".button_url // empty" msg.json) +fi + +if [ -z "$PASS" ]; then + echo "从msg.json获取 password" + PASS=$(jq -r ".password // empty" msg.json) +fi + +export TELEGRAM_TOKEN TELEGRAM_USERID WXSENDKEY sendtype BUTTON_URL PASS + +#echo "最终TELEGRAM_TOKEN=$TELEGRAM_TOKEN,TELEGRAM_USERID=$TELEGRAM_USERID" + + +for obj in "${monitor[@]}"; do + msg="" + # echo "obj= $obj" + if [ "$obj" == "sun-panel" ]; then + if ! checkProcAlive "sun-panel"; then + startSunPanel + sleep 3 + if ! checkProcAlive "sun-panel"; then + msg="sun-panel restarted failure." + else + msg="sun-panel restarted successfully." + fi + fi + elif [ "$obj" == "webssh" ]; then + if ! checkProcAlive "wssh"; then + startWebSSH + sleep 5 + if ! checkProcAlive "wssh"; then + msg="webssh restarted failure." + else + msg="webssh restarted successfully." + fi + fi + elif [ "$obj" == "vmess" ]; then + if ! checkvmessAlive; then + cd ${installpath}/serv00-play/singbox + chmod +x ./start.sh && ./start.sh 1 keep + sleep 5 + if ! checkvmessAlive; then + msg="vmess restarted failure." + else + msg="vmess restarted successfully." + fi + fi + #hy2和vmess+ws都只需要启动serv00sb,所以可以这么写 + elif [[ "$obj" == "hy2/vmess+ws" || "$obj" == "hy2" ]]; then + if ! checkHy2Alive; then + #echo "重启serv00sb中..." + cd ${installpath}/serv00-play/singbox + chmod +x ./start.sh && ./start.sh 2 keep + sleep 5 + if ! checkHy2Alive; then + msg="hy2 restarted failure." + else + msg="hy2 restarted successfully." + fi + fi + elif [ "$obj" == "nezha-agent" ]; then + if ! checknezhaAgentAlive; then + cd ${installpath}/serv00-play/nezha + startNeZhaAgent + sleep 5 + if ! checknezhaAgentAlive; then + msg="nezha-agent restarted failure." + else + msg="nezha-agent restarted successfully." + fi + fi + elif [ "$obj" == "mtg" ]; then + if ! checkMtgAlive; then + cd ${installpath}/serv00-play/dmtg + startMtg + sleep 5 + if ! checkMtgAlive; then + msg="mtproto restarted failure." + else + msg="mtproto restarted successfully." + fi + fi + elif [ "$obj" == "alist" ]; then + if ! checkProcAlive "alist"; then + startAlist + sleep 5 + if ! checkProcAlive "alist"; then + msg="alist restarted failure." + else + msg="alist restarted successfully." + fi + fi + elif [ "$obj" == "wssh" ]; then + if ! checkProcAlive wssh; then + startAlist + sleep 5 + if ! checkAlistAlive; then + msg="alist restarted failure." + else + msg="alist restarted successfully." + fi + fi + else + continue + fi + + sendMsg "$msg" + +done + +if [ ${#monitor[@]} -gt 0 ]; then + checkResetCron +fi diff --git a/tgsend.sh b/tgsend.sh index a30992d1..ee3d4b94 100644 --- a/tgsend.sh +++ b/tgsend.sh @@ -1,106 +1,106 @@ -#!/bin/bash - -message_text=$1 - -replaceValue() { - local url=$1 - local target=$2 - local value=$3 - local result - result=$(printf '%s' "$url" | sed "s|#${target}|${value//&/\\&}|g") - echo "$result" -} - -toBase64() { - echo -n "$1" | base64 -} - -urlencode() { - local input="$1" - local output="" - local length=${#input} - for ((i = 0; i < length; i++)); do - local char="${input:i:1}" - case "$char" in - [a-zA-Z0-9.~_-]) output+="$char" ;; - *) output+="$(printf '%%%02X' "'$char")" ;; - esac - done - echo "$output" -} - -toTGMsg() { - local msg=$1 - local title="*Serv00-play通知*" - local host_icon="🖥️" - local user_icon="👤" - local time_icon="⏰" - local notify_icon="📢" - - # 获取当前时间 - local current_time=$(date "+%Y-%m-%d %H:%M:%S") - - if [[ "$msg" != Host:* ]]; then - local formatted_msg="${title} \n\n" - formatted_msg+="${time_icon} *时间:* ${current_time} \n" - formatted_msg+="${notify_icon} *通知内容:* \n$msg \n\n" - echo -e "$formatted_msg" - return - fi - - local host=$(echo "$msg" | sed -n 's/.*Host:\([^,]*\).*/\1/p' | xargs) - local user=$(echo "$msg" | sed -n 's/.*user:\([^,]*\).*/\1/p' | xargs) - local notify_content=$(echo "$msg" | sed -E 's/.*user:[^,]*,//' | xargs) - - # 格式化消息内容,Markdown 换行使用两个空格 + 换行 - local formatted_msg="${title} \n\n" - formatted_msg+="${host_icon} *主机:* ${host} \n" - formatted_msg+="${user_icon} *用户:* ${user} \n" - formatted_msg+="${time_icon} *时间:* ${current_time} \n\n" - formatted_msg+="${notify_icon} *通知内容:* ${notify_content} \n\n" - - echo -e "$formatted_msg" # 使用 -e 选项以确保换行符生效 -} - -telegramBotToken=${TELEGRAM_TOKEN} -telegramBotUserId=${TELEGRAM_USERID} -formatted_msg=$(toTGMsg "$message_text") -button_url=${BUTTON_URL:-"https://www.youtube.com/@frankiejun8965"} -URL="https://api.telegram.org/bot${telegramBotToken}/sendMessage" -host=$(hostname) -user=$(whoami) -pass=$(toBase64 $PASS) -button_url=$(replaceValue $button_url HOST $host) -button_url=$(replaceValue $button_url USER $user) -button_url=$(replaceValue $button_url PASS $pass) -encoded_url=$(urlencode "$button_url") -#echo "encoded_url: $encoded_url" -reply_markup='{ - "inline_keyboard": [ - [ - {"text": "点击查看", "url": "'"${encoded_url}"'"} - ] - ] - }' -#echo "reply_markup: $reply_markup" -#echo "telegramBotToken:$telegramBotToken,telegramBotUserId:$telegramBotUserId" -if [[ -z ${telegramBotToken} ]]; then - echo "未配置TG推送" -else - res=$(curl -s -X POST "https://api.telegram.org/bot${telegramBotToken}/sendMessage" \ - -d chat_id="${telegramBotUserId}" \ - -d parse_mode="Markdown" \ - -d text="$formatted_msg" \ - -d reply_markup="$reply_markup") - if [ $? == 124 ]; then - echo 'TG_api请求超时,请检查网络是否重启完成并是否能够访问TG' - exit 1 - fi - #echo "res:$res" - resSuccess=$(echo "$res" | jq -r ".ok") - if [[ $resSuccess = "true" ]]; then - echo "TG推送成功" - else - echo "TG推送失败,请检查TG机器人token和ID" - fi -fi +#!/bin/bash + +message_text=$1 + +replaceValue() { + local url=$1 + local target=$2 + local value=$3 + local result + result=$(printf '%s' "$url" | sed "s|#${target}|${value//&/\\&}|g") + echo "$result" +} + +toBase64() { + echo -n "$1" | base64 +} + +urlencode() { + local input="$1" + local output="" + local length=${#input} + for ((i = 0; i < length; i++)); do + local char="${input:i:1}" + case "$char" in + [a-zA-Z0-9.~_-]) output+="$char" ;; + *) output+="$(printf '%%%02X' "'$char")" ;; + esac + done + echo "$output" +} + +toTGMsg() { + local msg=$1 + local title="*Serv00-play通知*" + local host_icon="🖥️" + local user_icon="👤" + local time_icon="⏰" + local notify_icon="📢" + + # 获取当前时间 + local current_time=$(date "+%Y-%m-%d %H:%M:%S") + + if [[ "$msg" != Host:* ]]; then + local formatted_msg="${title} \n\n" + formatted_msg+="${time_icon} *时间:* ${current_time} \n" + formatted_msg+="${notify_icon} *通知内容:* \n$msg \n\n" + echo -e "$formatted_msg" + return + fi + + local host=$(echo "$msg" | sed -n 's/.*Host:\([^,]*\).*/\1/p' | xargs) + local user=$(echo "$msg" | sed -n 's/.*user:\([^,]*\).*/\1/p' | xargs) + local notify_content=$(echo "$msg" | sed -E 's/.*user:[^,]*,//' | xargs) + + # 格式化消息内容,Markdown 换行使用两个空格 + 换行 + local formatted_msg="${title} \n\n" + formatted_msg+="${host_icon} *主机:* ${host} \n" + formatted_msg+="${user_icon} *用户:* ${user} \n" + formatted_msg+="${time_icon} *时间:* ${current_time} \n\n" + formatted_msg+="${notify_icon} *通知内容:* ${notify_content} \n\n" + + echo -e "$formatted_msg" # 使用 -e 选项以确保换行符生效 +} + +telegramBotToken=${TELEGRAM_TOKEN} +telegramBotUserId=${TELEGRAM_USERID} +formatted_msg=$(toTGMsg "$message_text") +button_url=${BUTTON_URL:-"https://www.youtube.com/@frankiejun8965"} +URL="https://api.telegram.org/bot${telegramBotToken}/sendMessage" +host=$(hostname) +user=$(whoami) +pass=$(toBase64 $PASS) +button_url=$(replaceValue $button_url HOST $host) +button_url=$(replaceValue $button_url USER $user) +button_url=$(replaceValue $button_url PASS $pass) +encoded_url=$(urlencode "$button_url") +#echo "encoded_url: $encoded_url" +reply_markup='{ + "inline_keyboard": [ + [ + {"text": "点击查看", "url": "'"${encoded_url}"'"} + ] + ] + }' +#echo "reply_markup: $reply_markup" +#echo "telegramBotToken:$telegramBotToken,telegramBotUserId:$telegramBotUserId" +if [[ -z ${telegramBotToken} ]]; then + echo "未配置TG推送" +else + res=$(curl -s -X POST "https://api.telegram.org/bot${telegramBotToken}/sendMessage" \ + -d chat_id="${telegramBotUserId}" \ + -d parse_mode="Markdown" \ + -d text="$formatted_msg" \ + -d reply_markup="$reply_markup") + if [ $? == 124 ]; then + echo 'TG_api请求超时,请检查网络是否重启完成并是否能够访问TG' + exit 1 + fi + #echo "res:$res" + resSuccess=$(echo "$res" | jq -r ".ok") + if [[ $resSuccess = "true" ]]; then + echo "TG推送成功" + else + echo "TG推送失败,请检查TG机器人token和ID" + fi +fi From 4338f3e0d3bd3679558ce9721f95093046b51bb6 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 2 Jan 2025 01:42:54 +0800 Subject: [PATCH 018/210] =?UTF-8?q?=E6=9C=AC=E5=9C=B0argo+action=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 68 +- .github/workflows/sync.yml | 80 +- .gitignore | 24 +- LICENSE | 26 +- README.md | 194 +-- keepalive.sh | 37 +- mkprofile.pl | 64 +- revive.sh | 66 +- singbox/start.sh | 238 ++-- ssl/cronSSL.sh | 56 +- start.sh | 2381 ++++++++++++++++++---------------- wxsend.sh | 48 +- 12 files changed, 1731 insertions(+), 1551 deletions(-) mode change 100755 => 100644 revive.sh mode change 100755 => 100644 start.sh mode change 100755 => 100644 wxsend.sh diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 232a584f..fff92b15 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,34 +1,34 @@ -name: 批量保活进程 - -on: - schedule: - # 使用cron表达式定义任务运行的时间 - # github使用utc时间 - - cron: '3 22 * * *' #北京时间6点 - workflow_dispatch: - -jobs: - deploy: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: 安装依赖 - run: | - sudo apt-get install sshpass - sudo apt-get install jq - - - name: 登录各个serv00并执行保活脚本 - env: - HOSTS_JSON: ${{ secrets.HOSTS_JSON }} - TELEGRAM_TOKEN: ${{secrets.TELEGRAM_TOKEN}} - TELEGRAM_USERID: ${{secrets.TELEGRAM_USERID}} - WXSENDKEY: ${{secrets.WXSENDKEY}} - SENDTYPE: ${{secrets.SENDTYPE}} - BUTTON_URL: ${{secrets.BUTTON_URL}} - AUTOUPDATE: ${{vars.AUTOUPDATE}} - run: | - chmod +x ./revive.sh - ./revive.sh +name: 批量保活进程 + +on: + schedule: + # 使用cron表达式定义任务运行的时间 + # github使用utc时间 + - cron: '3 22 * * *' #北京时间6点 + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: 安装依赖 + run: | + sudo apt-get install sshpass + sudo apt-get install jq + + - name: 登录各个serv00并执行保活脚本 + env: + HOSTS_JSON: ${{ secrets.HOSTS_JSON }} + TELEGRAM_TOKEN: ${{secrets.TELEGRAM_TOKEN}} + TELEGRAM_USERID: ${{secrets.TELEGRAM_USERID}} + WXSENDKEY: ${{secrets.WXSENDKEY}} + SENDTYPE: ${{secrets.SENDTYPE}} + BUTTON_URL: ${{secrets.BUTTON_URL}} + AUTOUPDATE: ${{vars.AUTOUPDATE}} + run: | + chmod +x ./revive.sh + ./revive.sh diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index ecdcaa87..17a833cc 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -1,40 +1,40 @@ -name: Sync Fork with Upstream - -on: - schedule: - - cron: '0 19 * * *' - workflow_dispatch: - -permissions: - contents: write - -jobs: - sync_latest_from_upstream: - name: Sync latest commits from upstream repo - runs-on: ubuntu-latest - if: ${{ github.event.repository.fork }} - - steps: - # Step 1: run a standard checkout action - - name: Checkout target repo - uses: actions/checkout@v3 - - # Step 2: run the sync action - - name: Sync upstream changes - id: sync - uses: aormsby/Fork-Sync-With-Upstream-action@v3.4 - with: - upstream_sync_repo: frankiejun/serv00-play - upstream_sync_branch: main - target_sync_branch: main - target_repo_token: ${{ secrets.GITHUB_TOKEN }} # automatically generated, no need to set - exclude: | - .github/workflows/sync.yml - - - name: Check for errors - if: failure() - run: echo "Sync failed! Please check the logs for more details." - - - name: Sync success message - if: success() - run: echo "Sync completed successfully!" +name: Sync Fork with Upstream + +on: + schedule: + - cron: '0 19 * * *' + workflow_dispatch: + +permissions: + contents: write + +jobs: + sync_latest_from_upstream: + name: Sync latest commits from upstream repo + runs-on: ubuntu-latest + if: ${{ github.event.repository.fork }} + + steps: + # Step 1: run a standard checkout action + - name: Checkout target repo + uses: actions/checkout@v3 + + # Step 2: run the sync action + - name: Sync upstream changes + id: sync + uses: aormsby/Fork-Sync-With-Upstream-action@v3.4 + with: + upstream_sync_repo: frankiejun/serv00-play + upstream_sync_branch: main + target_sync_branch: main + target_repo_token: ${{ secrets.GITHUB_TOKEN }} # automatically generated, no need to set + exclude: | + .github/workflows/sync.yml + + - name: Check for errors + if: failure() + run: echo "Sync failed! Please check the logs for more details." + + - name: Sync success message + if: success() + run: echo "Sync completed successfully!" diff --git a/.gitignore b/.gitignore index a24cf7a8..901da789 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,12 @@ -*.log -*.json -*.out -*.js -*test -a.* -*.swp -vmess/node_modules -vmess/list -vmess/cloudflared -vless/node_modules -tools/ +*.log +*.json +*.out +*.js +*test +a.* +*.swp +vmess/node_modules +vmess/list +vmess/cloudflared +vless/node_modules +tools/ diff --git a/LICENSE b/LICENSE index ebc743d4..079cec5e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,13 +1,13 @@ -Copyright [2024] [饭奇骏] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +Copyright [2024] [饭奇骏] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md index fc32ddf2..136eb576 100644 --- a/README.md +++ b/README.md @@ -1,97 +1,97 @@ -# serv00 上的一些应用,包括 argo+vmess/vmess+ws/hy2/socks5/mtproto/alist/哪吒探针/sun-panel/webssh 等, 自动化部署、批量保号、进程防杀、消息推送 - -💖 如果你在用这个项目,请给我打个 star,好让我知道有多少人从这个项目中受益。 - -## 前置工作 - -1. 你需要有一个 serv00 帐号 -2. 首次运行,无需使用面板,选 1 安装 serv00-play 后,选 13 按回车,它会自动重新登录,输入 ss 回车进入界面。(以后都是输入 ss 回车进入界面) - -## 安装说明 - -```s -bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/start.sh) -``` - -## 变量说明 - -| 变量名 | 示例 | 备注 | -| --------------- | ------ | -------------------------------------------------------------------------------- | -| HOSTS_JSON | 见示例 | 可存放 n 个服务器信息 (必选) | -| TELEGRAM_TOKEN | 略 | telegram 机器人的 token (发送 TG 消息必选) | -| TELEGRAM_USERID | 略 | 待通知的 teltegram 用户 ID (发送 TG 消息必选) | -| WXSENDKEY | 略 | server 酱的 sendkey,用于接收微信消息 (发送微信消息必选) | -| SENDTYPE | 3 | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | -| BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选),支持#HOST,#USER,#PASS 等变量。 | -| AUTOUPDATE | Y | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | - -各主机保活时可不必输入消息通知参数,由 github 同一配置参数。 - -如果主机上配置了消息推送参数,则优先级大于 github 上的配置。 - -## action 保活内容 - -1.定时自动登录各个主机,起到保号作用(因 serv00 需要每 3 个月登录一次) -2.执行兜底保活策略 -3.检查主机上保活用的 cronjob 是否被删,若被删重建保活 cronjob -4.自动更新 serv00-play 代码 -5.同步更新 telegram、微信等参数 -6.登录失败有 TG 消息通知,提醒可能封号(平时正常不会给你发消息,发消息之时便是你封号之日) - -## 消息推送 - -支持向 Telegram 和微信用户发送通知 - -关于如何配置 Telegram 以实现消息推送,可以看 [这个视频](https://www.youtube.com/watch?v=l8fPnMfq86c&t=3s) - -关于微信的配置,目前使用第三方平台提供的功能,可以到 [这里](https://sct.ftqq.com/r/13223) 注册并登录 server 酱,取得 sendKey - -## HOSTS_JSON 的配置实例 - -```js - { - "info": [ - { - "host": "s2.serv00.com", - "username": "kkk", - "port": 22, - "password": "fdsafjijgn" - }, - { - "host": "s2.serv00.com", - "username": "bbb", - "port": 22, - "password": "fafwwwwazcs" - } - ] -} -``` - -## 安装说明视频 - -安装使用说明可以看[这里](https://youtu.be/bpYV8r85F-8) -临时隧道已失效,请使用固定隧道名,[如何申请固定隧道名](https://youtu.be/KyMvtWknu-k) -argo+vmess 的搭建教学看[这里](https://youtu.be/nmb2F6uBKsg?si=v8twWIkIjsN8UYb-) - -由于本项目一直在迭代开发,界面会有些变化,想详细了解,可以看这一系列视频[serv00-play 系列](https://www.youtube.com/playlist?list=PLaMnUIjE3d5zArqlLzTU2oMZ0h-5VP6C0) - -## 赞助 - -
[点击展开] 请作者喝杯咖啡 ~🧧 -_捐赠将是对我最大的支持,它将激励我持续的创新和创作。_ - -![](https://look.pics.cloudns.ch/img/%E6%AC%A7%E6%98%93%E8%B5%9E%E5%8A%A9%E7%A0%81.png) - -- **USDT-TRC20:** `TUa2hLirmyq6tUPpfxHuMmWJExR91vHo5t` - -
- -## 项目鸣谢 - -[nekohasekai](https://github.com/SagerNet/sing-box)、[AlistGo](https://github.com/AlistGo/alist)、[9seconds](https://github.com/9seconds/mtg)、[eooce](https://github.com/eooce)、[nrootconauto](https://github.com/nrootconauto/MrChrootBSD)、[nezhahq](https://github.com/nezhahq/agent)、[huashengdun](https://github.com/huashengdun/webssh)、[hslr-s](https://github.com/hslr-s/sun-panel) -[yangtb2024](https://github.com/yangtb2024/OneTimeMessagePHP) - -## 免责声明 - -本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 代码、数据及图片均有所属版权, 如转载须注明来源。 -使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。 +# serv00 上的一些应用,包括 argo+vmess/vmess+ws/hy2/socks5/mtproto/alist/哪吒探针/sun-panel/webssh 等, 自动化部署、批量保号、进程防杀、消息推送 + +💖 如果你在用这个项目,请给我打个 star,好让我知道有多少人从这个项目中受益。 + +## 前置工作 + +1. 你需要有一个 serv00 帐号 +2. 首次运行,无需使用面板,选 1 安装 serv00-play 后,选 13 按回车,它会自动重新登录,输入 ss 回车进入界面。(以后都是输入 ss 回车进入界面) + +## 安装说明 + +```s +bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/start.sh) +``` + +## 变量说明 + +| 变量名 | 示例 | 备注 | +| --------------- | ------ | -------------------------------------------------------------------------------- | +| HOSTS_JSON | 见示例 | 可存放 n 个服务器信息 (必选) | +| TELEGRAM_TOKEN | 略 | telegram 机器人的 token (发送 TG 消息必选) | +| TELEGRAM_USERID | 略 | 待通知的 teltegram 用户 ID (发送 TG 消息必选) | +| WXSENDKEY | 略 | server 酱的 sendkey,用于接收微信消息 (发送微信消息必选) | +| SENDTYPE | 3 | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | +| BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选),支持#HOST,#USER,#PASS 等变量。 | +| AUTOUPDATE | Y | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | + +各主机保活时可不必输入消息通知参数,由 github 同一配置参数。 + +如果主机上配置了消息推送参数,则优先级大于 github 上的配置。 + +## action 保活内容 + +1.定时自动登录各个主机,起到保号作用(因 serv00 需要每 3 个月登录一次) +2.执行兜底保活策略 +3.检查主机上保活用的 cronjob 是否被删,若被删重建保活 cronjob +4.自动更新 serv00-play 代码 +5.同步更新 telegram、微信等参数 +6.登录失败有 TG 消息通知,提醒可能封号(平时正常不会给你发消息,发消息之时便是你封号之日) + +## 消息推送 + +支持向 Telegram 和微信用户发送通知 + +关于如何配置 Telegram 以实现消息推送,可以看 [这个视频](https://www.youtube.com/watch?v=l8fPnMfq86c&t=3s) + +关于微信的配置,目前使用第三方平台提供的功能,可以到 [这里](https://sct.ftqq.com/r/13223) 注册并登录 server 酱,取得 sendKey + +## HOSTS_JSON 的配置实例 + +```js + { + "info": [ + { + "host": "s2.serv00.com", + "username": "kkk", + "port": 22, + "password": "fdsafjijgn" + }, + { + "host": "s2.serv00.com", + "username": "bbb", + "port": 22, + "password": "fafwwwwazcs" + } + ] +} +``` + +## 安装说明视频 + +安装使用说明可以看[这里](https://youtu.be/bpYV8r85F-8) +临时隧道已失效,请使用固定隧道名,[如何申请固定隧道名](https://youtu.be/KyMvtWknu-k) +argo+vmess 的搭建教学看[这里](https://youtu.be/nmb2F6uBKsg?si=v8twWIkIjsN8UYb-) + +由于本项目一直在迭代开发,界面会有些变化,想详细了解,可以看这一系列视频[serv00-play 系列](https://www.youtube.com/playlist?list=PLaMnUIjE3d5zArqlLzTU2oMZ0h-5VP6C0) + +## 赞助 + +
[点击展开] 请作者喝杯咖啡 ~🧧 +_捐赠将是对我最大的支持,它将激励我持续的创新和创作。_ + +![](https://look.pics.cloudns.ch/img/%E6%AC%A7%E6%98%93%E8%B5%9E%E5%8A%A9%E7%A0%81.png) + +- **USDT-TRC20:** `TUa2hLirmyq6tUPpfxHuMmWJExR91vHo5t` + +
+ +## 项目鸣谢 + +[nekohasekai](https://github.com/SagerNet/sing-box)、[AlistGo](https://github.com/AlistGo/alist)、[9seconds](https://github.com/9seconds/mtg)、[eooce](https://github.com/eooce)、[nrootconauto](https://github.com/nrootconauto/MrChrootBSD)、[nezhahq](https://github.com/nezhahq/agent)、[huashengdun](https://github.com/huashengdun/webssh)、[hslr-s](https://github.com/hslr-s/sun-panel) +[yangtb2024](https://github.com/yangtb2024/OneTimeMessagePHP) + +## 免责声明 + +本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 代码、数据及图片均有所属版权, 如转载须注明来源。 +使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。 diff --git a/keepalive.sh b/keepalive.sh index a6a764f1..8e0b3089 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -1,6 +1,5 @@ #!/bin/bash - installpath="$HOME" source ${installpath}/serv00-play/utils.sh @@ -23,7 +22,6 @@ checkHy2Alive() { } - sendMsg() { local msg=$1 if [ -n "$msg" ]; then @@ -54,9 +52,9 @@ checkResetCron() { } #构建消息配置文件 -makeMsgConfig(){ +makeMsgConfig() { echo "构造消息配置文件..." - cat > msg.json <msg.json <){ - if( /^#added by serv00-play begin/){ - $addflag=1; - $flag=1; - print $content, "\n"; - }else{ - if (/^#added by serv00-play end/){ - $flag=0; - }else{ - print if $flag==0; - } - } -} - -if( $addflag==0 ){ - print $content, "\n"; +#!/bin/perl + +$addflag=0; +$flag=0; +$content=qq{ +#added by serv00-play begin +export TZ=Asia/Shanghai +export EDITOR=vim +export VISUAL=vim +export LANG=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 +alias l='ls -ltr' +alias pp='ps aux' +alias ss='cd ~/serv00-play && ./start.sh' +#added by serv00-play end +}; + +while(<>){ + if( /^#added by serv00-play begin/){ + $addflag=1; + $flag=1; + print $content, "\n"; + }else{ + if (/^#added by serv00-play end/){ + $flag=0; + }else{ + print if $flag==0; + } + } +} + +if( $addflag==0 ){ + print $content, "\n"; } \ No newline at end of file diff --git a/revive.sh b/revive.sh old mode 100755 new mode 100644 index 2f1cce14..c306d374 --- a/revive.sh +++ b/revive.sh @@ -1,33 +1,33 @@ -#!/bin/bash - -AUTOUPDATE=${AUTOUPDATE:-Y} -SENDTYPE=${SENDTYPE:-null} -TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} -TELEGRAM_USERID=${TELEGRAM_USERID:-null} -WXSENDKEY=${WXSENDKEY:-null} -BUTTON_URL=${BUTTON_URL:-null} - -# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 -hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) - -for info in "${hosts_info[@]}"; do - user=$(echo $info | jq -r ".username") - host=$(echo $info | jq -r ".host") - port=$(echo $info | jq -r ".port") - pass=$(echo $info | jq -r ".password") - - if [[ "$AUTOUPDATE" == "Y" ]]; then - script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" - else - script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" - fi - output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") - - echo "output:$output" - if echo "$output" | grep -q "keepalive.sh"; then - echo "登录成功" - else - echo "登录失败" - ./tgsend.sh "Host:$host,user:$user,登录失败请检查!" - fi -done +#!/bin/bash + +AUTOUPDATE=${AUTOUPDATE:-Y} +SENDTYPE=${SENDTYPE:-null} +TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} +TELEGRAM_USERID=${TELEGRAM_USERID:-null} +WXSENDKEY=${WXSENDKEY:-null} +BUTTON_URL=${BUTTON_URL:-null} + +# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 +hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) + +for info in "${hosts_info[@]}"; do + user=$(echo $info | jq -r ".username") + host=$(echo $info | jq -r ".host") + port=$(echo $info | jq -r ".port") + pass=$(echo $info | jq -r ".password") + + if [[ "$AUTOUPDATE" == "Y" ]]; then + script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" + else + script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" + fi + output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") + + echo "output:$output" + if echo "$output" | grep -q "keepalive.sh"; then + echo "登录成功" + else + echo "登录失败" + ./tgsend.sh "Host:$host,user:$user,登录失败请检查!" + fi +done diff --git a/singbox/start.sh b/singbox/start.sh index d47a9f15..72d4fe32 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -1,127 +1,111 @@ -#!/bin/bash - -config="singbox.json" - -VMPORT=$(jq -r ".VMPORT" $config) -HY2PORT=$(jq -r ".HY2PORT" $config) -HY2IP=$(jq -r ".HY2IP" $config) -UUID=$(jq -r ".UUID" $config) -WSPATH=$(jq -r ".WSPATH" $config) - -ARGO_AUTH=$(jq -r ".ARGO_AUTH" $config) -ARGO_DOMAIN=$(jq -r ".ARGO_DOMAIN" $config) - -GOOD_DOMAIN=$(jq -r ".GOOD_DOMAIN" $config) -SOCKS5_PORT=$(jq -r ".SOCKS5_PORT" $config) -SOCKS5_USER=$(jq -r ".SOCKS5_USER" $config) -SOCKS5_PASS=$(jq -r ".SOCKS5_PASS" $config) - - -if [ -z $1 ]; then - type=$(jq -r ".TYPE" $config) -else - type=$1 -fi - -keep=$2 - - - -run() { - if ps aux | grep cloudflared | grep -v "grep" >/dev/null; then - return - fi - if [[ -n "${ARGO_AUTH}" && -n "${ARGO_DOMAIN}" ]]; then - if [[ "$ARGO_AUTH" =~ TunnelSecret ]]; then - echo "$ARGO_AUTH" | sed 's@{@{"@g;s@[,:]@"\0"@g;s@}@"}@g' >tunnel.json - cat >tunnel.yml <>tunnel.yml </dev/null 2>&1 & - elif [[ "$ARGO_AUTH" =~ ^[A-Z0-9a-z=]{120,250}$ ]]; then - nohup ./cloudflared tunnel --edge-ip-version auto --protocol http2 run --token ${ARGO_AUTH} >/dev/null 2>&1 & - fi - else - nohup ./cloudflared tunnel --edge-ip-version auto --protocol http2 --no-autoupdate --url http://localhost:${VMPORT} >/dev/null 2>&1 & - sleep 5 - ARGO_DOMAIN=$(wget -qO- $(sockstat -4 -l -P tcp | grep cloudflare | awk '{for(i=1;i<=NF;i++) if($i ~ /127\.0\.0\.1/) print $i}')/quicktunnel | jq -r '.hostname') - echo "ARGO_DOMAIN:$ARGO_DOMAIN" - fi -} - -export_list() { - user="$(whoami)" - host="$(hostname | cut -d '.' -f 1)" - if [[ "$HY2IP" != "::" ]]; then - myip=${HY2IP} - else - myip="$(curl -s icanhazip.com)" - fi - vmessname="Argo-vmess-$host-$user" - hy2name="Hy2-$host-$user" - VMESSWS="{\"v\":\"2\",\"ps\": \"Vmessws-${host}-${user}\", \"add\":\"www.visa.com.hk\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" - ARGOVMESS="{ \"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"www.visa.com.hk\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\" }" - hysteria2="hysteria2://$UUID@$myip:$HY2PORT/?sni=www.bing.com&alpn=h3&insecure=1#$hy2name" - socks5="https://t.me/socks?server=${host}.serv00.com&port=${SOCKS5_PORT}&user=${SOCKS5_USER}&pass=${SOCKS5_PASS}" - proxyip="proxyip://${SOCKS5_USER}:${SOCKS5_PASS}@${host}.serv00.com:${SOCKS5_PORT}" - - - cat >list </dev/null; then - nohup ./serv00sb run -c ./config.json >/dev/null 2>&1 & - fi -elif [[ "$type" =~ ^(1|3|1.1|3.1|4.4|2.4)$ ]]; then - chmod +x ./serv00sb - if ! ps aux | grep serv00sb | grep -v "grep" >/dev/null; then - nohup ./serv00sb run -c ./config.json >/dev/null 2>&1 & - fi -fi - -if [ -z "$keep" ]; then - export_list -fi -exit 0 +#!/bin/bash + +config="singbox.json" + +VMPORT=$(jq -r ".VMPORT" $config) +HY2PORT=$(jq -r ".HY2PORT" $config) +HY2IP=$(jq -r ".HY2IP" $config) +UUID=$(jq -r ".UUID" $config) +WSPATH=$(jq -r ".WSPATH" $config) + +ARGO_AUTH=$(jq -r ".ARGO_AUTH" $config) +ARGO_DOMAIN=$(jq -r ".ARGO_DOMAIN" $config) +TUNNEL_NAME=$(jq -r ".TUNNEL_NAME" $config) +GOOD_DOMAIN=$(jq -r ".GOOD_DOMAIN" $config) +SOCKS5_PORT=$(jq -r ".SOCKS5_PORT" $config) +SOCKS5_USER=$(jq -r ".SOCKS5_USER" $config) +SOCKS5_PASS=$(jq -r ".SOCKS5_PASS" $config) + + +if [ -z $1 ]; then + type=$(jq -r ".TYPE" $config) +else + type=$1 +fi + +keep=$2 + + + +run() { + if ps aux | grep cloudflared | grep -v "grep" >/dev/null; then + return + fi + if [[ "${ARGO_AUTH}" != "null" && "${ARGO_DOMAIN}" != "null" ]]; then + nohup ./cloudflared tunnel --edge-ip-version auto --protocol http2 run --token ${ARGO_AUTH} >/dev/null 2>&1 & + elif [[ "$ARGO_DOMAIN" != "null" && "$TUNNEL_NAME" != "null" ]]; then + nohup ./cloudflared tunnel run $TUNNEL_NAME > /dev/null 2>&1 & + else + echo "未有tunnel相关配置!" + return 1 + fi +} + +export_list() { + user="$(whoami)" + host="$(hostname | cut -d '.' -f 1)" + if [[ "$HY2IP" != "::" ]]; then + myip=${HY2IP} + else + myip="$(curl -s icanhazip.com)" + fi + if [[ "$GOOD_DOMAIN" == "null" ]]; then + GOOD_DOMAIN="www.visa.com.hk" + fi + vmessname="Argo-vmess-$host-$user" + hy2name="Hy2-$host-$user" + VMESSWS="{\"v\":\"2\",\"ps\": \"Vmessws-${host}-${user}\", \"add\":\"www.visa.com.hk\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" + ARGOVMESS="{ \"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\" }" + hysteria2="hysteria2://$UUID@$myip:$HY2PORT/?sni=www.bing.com&alpn=h3&insecure=1#$hy2name" + socks5="https://t.me/socks?server=${host}.serv00.com&port=${SOCKS5_PORT}&user=${SOCKS5_USER}&pass=${SOCKS5_PASS}" + proxyip="proxyip://${SOCKS5_USER}:${SOCKS5_PASS}@${host}.serv00.com:${SOCKS5_PORT}" + + + cat >list </dev/null; then + nohup ./serv00sb run -c ./config.json >/dev/null 2>&1 & + fi +elif [[ "$type" =~ ^(1|3|1.1|3.1|4.4|2.4)$ ]]; then + chmod +x ./serv00sb + if ! ps aux | grep serv00sb | grep -v "grep" >/dev/null; then + nohup ./serv00sb run -c ./config.json >/dev/null 2>&1 & + fi +fi + +if [ -z "$keep" ]; then + export_list +fi +exit 0 diff --git a/ssl/cronSSL.sh b/ssl/cronSSL.sh index f3e5f24f..0c32cb2c 100644 --- a/ssl/cronSSL.sh +++ b/ssl/cronSSL.sh @@ -1,28 +1,28 @@ -#!/bin/bash - -installpath="$HOME" -domain=$1 -host="$(hostname | cut -d '.' -f 1)" -user=$(whoami) -sno=${host/s/web} -webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') -resp=$(devil ssl www add $webIp le le $domain) - -cd ${installpath}/serv00-play/ssl - -if [[ "$resp" =~ .*succesfully.*$ ]]; then - crontab -l | grep -v "$domain" >tmpcron - crontab tmpcron - rm -rf tmpcron - config="../config.json" - if [ -e "$config" ]; then - TELEGRAM_TOKEN=$(jq -r ".telegram_token" "$config") - TELEGRAM_USERID=$(jq -r ".telegram_userid" "$config") - if [[ -n "$TELEGRAM_TOKEN" && -n "$TELEGRAM_USERID" ]]; then - msg="Host:$host, user:$user, 你的域名($domain)申请的SSL证书已下发,请查收!" - cd $installpath/serv00-play - export TELEGRAM_TOKEN="$TELEGRAM_TOKEN" TELEGRAM_USERID="$TELEGRAM_USERID" - ./tgsend.sh "$msg" - fi - fi -fi +#!/bin/bash + +installpath="$HOME" +domain=$1 +host="$(hostname | cut -d '.' -f 1)" +user=$(whoami) +sno=${host/s/web} +webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') +resp=$(devil ssl www add $webIp le le $domain) + +cd ${installpath}/serv00-play/ssl + +if [[ "$resp" =~ .*succesfully.*$ ]]; then + crontab -l | grep -v "$domain" >tmpcron + crontab tmpcron + rm -rf tmpcron + config="../config.json" + if [ -e "$config" ]; then + TELEGRAM_TOKEN=$(jq -r ".telegram_token" "$config") + TELEGRAM_USERID=$(jq -r ".telegram_userid" "$config") + if [[ -n "$TELEGRAM_TOKEN" && -n "$TELEGRAM_USERID" ]]; then + msg="Host:$host, user:$user, 你的域名($domain)申请的SSL证书已下发,请查收!" + cd $installpath/serv00-play + export TELEGRAM_TOKEN="$TELEGRAM_TOKEN" TELEGRAM_USERID="$TELEGRAM_USERID" + ./tgsend.sh "$msg" + fi + fi +fi diff --git a/start.sh b/start.sh old mode 100755 new mode 100644 index 1ab21f92..e0533933 --- a/start.sh +++ b/start.sh @@ -18,19 +18,20 @@ red() { echo -e "${RED}$1${RESET}" } installpath="$HOME" -if [[ -e "$installpath/serv00-play" ]]; then +USER="$(whoami)" +if [[ -e "$installpath/serv00-play" ]]; then source ${installpath}/serv00-play/utils.sh fi PS3="请选择(输入0退出): " -install(){ +install() { cd ${installpath} if [ -d serv00-play ]; then cd "serv00-play" git stash if git pull; then echo "更新完毕" - #重新给各个脚本赋权限 + #重新给各个脚本赋权限 chmod +x ./start.sh chmod +x ./keepalive.sh chmod +x ${installpath}/serv00-play/singbox/start.sh @@ -40,25 +41,36 @@ install(){ exit 0 fi fi - + cd ${installpath} echo "正在安装..." if ! git clone https://github.com/frankiejun/serv00-play.git; then echo -e "${RED}安装失败!${RESET}" - exit 1; + exit 1 + fi + devil binexec on + touch .profile + cat .profile | perl ./serv00-play/mkprofile.pl >tmp_profile + mv -f tmp_profile .profile + + read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input + input=${input:-y} + + if [ "$input" = "y" ]; then + kill -9 $PPID fi echo -e "${YELLOW}安装成功${RESET}" } -showSingBoxInfo(){ +showSingBoxInfo() { cd ${installpath}/serv00-play/singbox - + if [ ! -f singbox.json ]; then - red "配置文件不存在,请先行配置!" - return + red "配置文件不存在,请先行配置!" + return fi if [ ! -e list ]; then - red "请先运行sing-box" + red "请先运行sing-box" fi config="singbox.json" type=$(jq -r ".TYPE" $config) @@ -66,29 +78,28 @@ showSingBoxInfo(){ } +chooseSingbox() { + echo "保活sing-box中哪个项目: " + echo " 1.hy2/vmess+ws/socks5 " + echo " 2.argo+vmess " + echo " 3.all " + read -p "请选择:" input -chooseSingbox(){ - echo "保活sing-box中哪个项目: " - echo " 1.hy2/vmess+ws/socks5 " - echo " 2.argo+vmess " - echo " 3.all " - read -p "请选择:" input - if [ "$input" = "1" ]; then - item+=("hy2/vmess+ws") + item+=("hy2/vmess+ws") elif [ "$input" = "2" ]; then - item+=("vmess") + item+=("vmess") elif [ "$input" = "3" ]; then - item+=("hy2/vmess+ws") - item+=("vmess") - else - red "无效选择!" - return 1 - fi + item+=("hy2/vmess+ws") + item+=("vmess") + else + red "无效选择!" + return 1 + fi } -setConfig(){ +setConfig() { cd ${installpath}/serv00-play/ if [ -f config.json ]; then @@ -104,8 +115,7 @@ setConfig(){ createConfigFile } -createConfigFile(){ - +createConfigFile() { echo "选择你要保活的项目(可多选,用空格分隔):" echo "1. sun-panel " echo "2. sing-box(包含hy2,vmess,socks5) " @@ -115,14 +125,15 @@ createConfigFile(){ echo "6. webssh" echo "88. 暂停所有保活功能" echo "99. 复通所有保活功能(之前有配置的情况下)" + echo "0. 返回主菜单" item=() read -p "请选择: " choices - choices=($choices) + choices=($choices) if [[ "${choices[@]}" =~ "88" && ${#choices[@]} -gt 1 ]]; then - red "选择出现了矛盾项,请重新选择!" - return 1 + red "选择出现了矛盾项,请重新选择!" + return 1 fi #过滤重复 @@ -131,55 +142,59 @@ createConfigFile(){ # 根据选择来询问对应的配置 for choice in "${choices[@]}"; do case "$choice" in - 1) - item+=("sun-panel") - ;; + 0) + showMenu + break + ;; + 1) + item+=("sun-panel") + ;; 2) if ! chooseSingbox; then - return + return fi ;; - 3) + 3) item+=("nezha-agent") - ;; + ;; 4) item+=("mtg") ;; 5) item+=("alist") ;; - 6) + 6) item+=("webssh") ;; 88) - delCron - backupConfig "config.json" - green "设置完毕!" - return 0 - ;; + delCron + backupConfig "config.json" + green "设置完毕!" + return 0 + ;; 99) - if [[ ! -e config.bak ]]; then - red "之前未有配置,未能复通!" - return 1 - fi - restoreConfig "config.bak" - tm=$(jq -r ".chktime" config.json) - addCron $tm - green "设置完毕!" - return 0 - ;; + if [[ ! -e config.bak ]]; then + red "之前未有配置,未能复通!" + return 1 + fi + restoreConfig "config.bak" + tm=$(jq -r ".chktime" config.json) + addCron $tm + green "设置完毕!" + return 0 + ;; *) - echo "无效选择" - return 1 - ;; - esac -done + echo "无效选择" + return 1 + ;; + esac + done json_content="{\n" json_content+=" \"item\": [\n" - + for item in "${item[@]}"; do - json_content+=" \"$item\"," + json_content+=" \"$item\"," done # 删除最后一个逗号并换行 @@ -189,7 +204,7 @@ done if [ "$num" = "4" ]; then json_content+=" \"chktime\": \"null\"" json_content+="}\n" - printf "$json_content" > ./config.json + printf "$json_content" >./config.json echo -e "${YELLOW} 设置完成! ${RESET} " delCron return @@ -212,33 +227,33 @@ done echo "3) 以上皆是" read -p "请选择:" sendtype - + if [ "$sendtype" == "1" ]; then writeTG - elif [ "$sendtype" == "2" ]; then + elif [ "$sendtype" == "2" ]; then writeWX - elif [ "$sendtype" == "3" ]; then + elif [ "$sendtype" == "3" ]; then writeTG writeWX - else - echo "无效选择" - return - fi - else + else + echo "无效选择" + return + fi + else sendtype=${sendtype:-"null"} - fi + fi json_content+="\n \"sendtype\": $sendtype \n" json_content+="}\n" - + # 使用 printf 生成文件 - printf "$json_content" > ./config.json + printf "$json_content" >./config.json addCron $tm chmod +x ${installpath}/serv00-play/keepalive.sh echo -e "${YELLOW} 设置完成! ${RESET} " } -backupConfig(){ +backupConfig() { local filename=$1 if [[ -e "$filename" ]]; then if [[ "$filename" =~ ".json" ]]; then @@ -248,7 +263,7 @@ backupConfig(){ fi } -restoreConfig(){ +restoreConfig() { local filename=$1 if [[ -e "$filename" ]]; then if [[ "$filename" =~ ".bak" ]]; then @@ -278,8 +293,8 @@ make_vmess_config() { } EOF } -make_outbound_wireguard(){ - cat < temp_outbound_socks5.json <temp_outbound_socks5.json < temphy2.json <temphy2.json < tmpsocks5.json <tmpsocks5.json <~/.cloudflared/config.yml < singbox.json <singbox.json < /dev/null 2>&1 - rsync -a $srcpath/ ~/ 2>/dev/null - yellow "快照恢复完成!" - return + local i=1 + declare -a folders + for folder in "${sorted_keys[@]}"; do + echo "${i}. ${folder} " + i=$((i + 1)) + done + retries=3 + while [ $retries -gt 0 ]; do + read -p "请选择恢复到哪一天(序号)?" input + # 检查输入是否有效 + if [[ $input =~ ^[0-9]+$ ]] && [ "$input" -gt 0 ] && [ "$input" -le $size ]; then + # 输入有效,退出循环 + targetFolder="${sorted_keys[@]:$input-1:1}" + echo "你选择的恢复日期是:${targetFolder}" + break + else + # 输入无效,减少重试次数 + retries=$((retries - 1)) + echo "输入有误,请重新输入!你还有 $retries 次机会。" + fi + if [ $retries -eq 0 ]; then + echo "输入错误次数过多,操作已取消。" + return + fi + done + killUserProc + srcpath=${snapshot_paths["${targetFolder}"]} + #echo "srcpath:$srcpath" + rm -rf ~/* >/dev/null 2>&1 + rsync -a $srcpath/ ~/ 2>/dev/null + yellow "快照恢复完成!" + return elif [ "$input" = "2" ]; then - declare -A foundArr - read -p "输入你要恢复到文件或目录:" infile - - for folder in "${!snapshot_paths[@]}"; do - path="${snapshot_paths[$folder]}" - results=$(find "${path}" -name "$infile" 2>/dev/null) - # echo "111results:|$results|" - if [[ -n "$results" ]]; then - #echo "put |$results| to folder:$folder" - foundArr["$folder"]="$results" - fi - done - local i=1 - sortedFoundArr=($(echo "${!foundArr[@]}" | tr ' ' '\n' | sort -r)) - declare -A indexPathArr - for folder in "${sortedFoundArr[@]}"; do - echo "$i. $folder:" - results="${foundArr[${folder}]}" - IFS=$'\n' read -r -d '' -a paths <<< "$results" - local j=1 - for path in "${paths[@]}"; do - indexPathArr["$i"."$j"]="$path" - echo " $j. $path" - - j=$((j+1)) - done - i=$((i+1)) + declare -A foundArr + read -p "输入你要恢复到文件或目录:" infile + + for folder in "${!snapshot_paths[@]}"; do + path="${snapshot_paths[$folder]}" + results=$(find "${path}" -name "$infile" 2>/dev/null) + # echo "111results:|$results|" + if [[ -n "$results" ]]; then + #echo "put |$results| to folder:$folder" + foundArr["$folder"]="$results" + fi + done + local i=1 + sortedFoundArr=($(echo "${!foundArr[@]}" | tr ' ' '\n' | sort -r)) + declare -A indexPathArr + for folder in "${sortedFoundArr[@]}"; do + echo "$i. $folder:" + results="${foundArr[${folder}]}" + IFS=$'\n' read -r -d '' -a paths <<<"$results" + local j=1 + for path in "${paths[@]}"; do + indexPathArr["$i"."$j"]="$path" + echo " $j. $path" + + j=$((j + 1)) done - - while [ true ]; do - read -p "输入要恢复的文件序号,格式:日期序号.文件序号, 多个以逗号分隔.(如输入 1.2,3.2)[按enter返回]:" input - regex='^([0-9]+\.[0-9]+)(,[0-9]+\.[0-9]+)*$' + i=$((i + 1)) + done + + while [ true ]; do + read -p "输入要恢复的文件序号,格式:日期序号.文件序号, 多个以逗号分隔.(如输入 1.2,3.2)[按enter返回]:" input + regex='^([0-9]+\.[0-9]+)(,[0-9]+\.[0-9]+)*$' + + if [ -z "$input" ]; then + return + fi + + if [[ "$input" =~ $regex ]]; then + declare -a pairNos + declare -a fileNos + IFS=',' read -r -a pairNos <<<"$input" - if [ -z "$input" ]; then - return + echo "请选择文件恢复的目标路径:" + echo "1.原路返回 " + echo "2.${installpath}/restore " + read -p "请选择:" targetDir + + if [[ "$targetDir" != "1" ]] && [[ "$targetDir" != "2" ]]; then + red "无效输入!" + return fi - - if [[ "$input" =~ $regex ]]; then - declare -a pairNos - declare -a fileNos - IFS=',' read -r -a pairNos <<< "$input" - - echo "请选择文件恢复的目标路径:" - echo "1.原路返回 " - echo "2.${installpath}/restore " - read -p "请选择:" targetDir - - if [[ "$targetDir" != "1" ]] && [[ "$targetDir" != "2" ]];then - red "无效输入!" - return + + for pairNo in "${pairNos[@]}"; do + srcpath="${indexPathArr[$pairNo]}" + + if [ "$targetDir" = "1" ]; then + local user=$(whoami) + targetPath=${srcpath#*${user}} + if [ -d $srcpath ]; then + targetPath=${targetPath%/*} + fi + echo "cp -r $srcpath $HOME/$targetPath" + cp -r ${srcpath} $HOME/${targetPath} + + elif [ "$targetDir" = "2" ]; then + targetPath="${installpath}/restore" + if [ ! -e "$targetPath" ]; then + mkdir -p "$targetPath" + fi + cp -r $srcpath $targetPath/ fi + done + green "完成文件恢复" - for pairNo in "${pairNos[@]}"; do - srcpath="${indexPathArr[$pairNo]}" - - if [ "$targetDir" = "1" ]; then - local user=$(whoami) - targetPath=${srcpath#*${user}} - if [ -d $srcpath ]; then - targetPath=${targetPath%/*} - fi - echo "cp -r $srcpath $HOME/$targetPath" - cp -r ${srcpath} $HOME/${targetPath} - - elif [ "$targetDir" = "2" ]; then - targetPath="${installpath}/restore" - if [ ! -e "$targetPath" ]; then - mkdir -p "$targetPath" - fi - cp -r $srcpath $targetPath/ - fi - done - green "完成文件恢复" - - else - red "输入格式不对,请重新输入!" - fi - done + else + red "输入格式不对,请重新输入!" + fi + done fi - + } -uninstall(){ +uninstall() { read -p "确定卸载吗? [y/n] [n]:" input input=${input:-n} @@ -954,7 +1111,7 @@ uninstall(){ fi } -InitServer(){ +InitServer() { read -p "$(red "将初始化帐号系统,要继续?[y/n] [n]:")" input input=${input:-n} read -p "是否保留用户配置?[y/n] [y]:" saveProfile @@ -972,28 +1129,28 @@ InitServer(){ fi cleanPort yellow "初始化完毕" - - exit 0 + + exit 0 fi } -manageNeZhaAgent(){ +manageNeZhaAgent() { if ! checkInstalled "serv00-play"; then - return 1 + return 1 fi while true; do - yellow "-------------------------" - echo "探针管理:" - echo "1.安装探针" - echo "2.升级探针" - echo "3.启动/重启探针" - echo "4.停止探针" - echo "9.返回主菜单" - echo "0.退出脚本" - yellow "-------------------------" - - read -p "请选择:" choice - case $choice in + yellow "-------------------------" + echo "探针管理:" + echo "1.安装探针" + echo "2.升级探针" + echo "3.启动/重启探针" + echo "4.停止探针" + echo "9.返回主菜单" + echo "0.退出脚本" + yellow "-------------------------" + + read -p "请选择:" choice + case $choice in 1) installNeZhaAgent ;; @@ -1002,7 +1159,7 @@ manageNeZhaAgent(){ ;; 3) startAgent - exit 0; + exit 0 ;; 4) stopNeZhaAgent @@ -1010,17 +1167,18 @@ manageNeZhaAgent(){ 9) break ;; - 0) exit 0 + 0) + exit 0 ;; - *) + *) echo "无效选项,请重试" ;; - esac - done - showMenu + esac + done + showMenu } -updateAgent(){ +updateAgent() { red "暂不提供在线升级, 只适配哪吒面板v0版本系列。" return 1 exepath="${installpath}/serv00-play/nezha/nezha-agent" @@ -1042,8 +1200,8 @@ updateAgent(){ local filezip="nezha-agent_latest.zip" curl -sL -o "$filezip" "$download_url" if [[ ! -e "$filezip" || -n $(file "$filezip" | grep "text") ]]; then - echo "下载探针文件失败!" - return + echo "下载探针文件失败!" + return fi local agent_runing=0 if checknezhaAgentAlive; then @@ -1061,69 +1219,69 @@ updateAgent(){ echo "已经是最新版本: $local_version" fi if [[ $agent_runing -eq 1 ]]; then - exit 0; + exit 0 fi } -startAgent(){ +startAgent() { local workedir="${installpath}/serv00-play/nezha" if [ ! -e "${workedir}" ]; then - red "未安装探针,请先安装!!!" - return + red "未安装探针,请先安装!!!" + return fi cd $workedir - + local configfile="./nezha.json" if [ ! -e "$configfile" ]; then red "未安装探针,请先安装!!!" - return + return fi - + nezha_domain=$(jq -r ".nezha_domain" $configfile) nezha_port=$(jq -r ".nezha_port" $configfile) nezha_pwd=$(jq -r ".nezha_pwd" $configfile) tls=$(jq -r ".tls" $configfile) if checknezhaAgentAlive; then - stopNeZhaAgent + stopNeZhaAgent fi local args="--report-delay 4 --disable-auto-update --disable-force-update " if [[ "$tls" == "y" ]]; then - args="${args} --tls " + args="${args} --tls " fi #echo "./nezha-agent ${args} -s ${nezha_domain}:${nezha_port} -p ${nezha_pwd}" nohup ./nezha-agent ${args} -s ${nezha_domain}:${nezha_port} -p ${nezha_pwd} >/dev/null 2>&1 & - + if checknezhaAgentAlive; then - green "启动成功!" + green "启动成功!" else - red "启动失败!" + red "启动失败!" fi #即便使用nohup放后台,此处如果使用ctrl+c退出脚本,nezha-agent进程也会退出。非常奇葩,因此startAgent后只能exit退出脚本,避免用户使用ctrl+c退出。 - + } -installNeZhaAgent(){ +installNeZhaAgent() { local workedir="${installpath}/serv00-play/nezha" if [ ! -e "${workedir}" ]; then - mkdir -p "${workedir}" + mkdir -p "${workedir}" fi - cd ${workedir} - if [[ ! -e nezha-agent ]]; then + cd ${workedir} + if [[ ! -e nezha-agent ]]; then echo "正在下载哪吒探针..." local url="https://github.com/nezhahq/agent/releases/download/v0.20.3/nezha-agent_freebsd_amd64.zip" agentZip="nezha-agent.zip" if ! wget -qO "$agentZip" "$url"; then - red "下载哪吒探针失败" - return 1 + red "下载哪吒探针失败" + return 1 fi - unzip $agentZip > /dev/null 2>&1 + unzip $agentZip >/dev/null 2>&1 chmod +x ./nezha-agent green "下载完毕" fi - + local config="nezha.json" local input="y" if [[ -e "$config" ]]; then @@ -1132,7 +1290,7 @@ installNeZhaAgent(){ read -p "是否修改? [y/n] [n]:" input input=${input:-n} fi - + if [[ "$input" == "y" ]]; then read -p "请输入哪吒面板的域名或ip:" nezha_domain read -p "请输入哪吒面板RPC端口(默认 5555):" nezha_port @@ -1148,11 +1306,11 @@ installNeZhaAgent(){ fi if [[ -z "$nezha_domain" || -z "$nezha_port" || -z "$nezha_pwd" ]]; then - red "以上参数都不能为空!" - return 1 + red "以上参数都不能为空!" + return 1 fi - cat > $config <$config </dev/null 2>&1 & green "哪吒探针成功启动!" - + } -uninstallAgent(){ +uninstallAgent() { read -p "确定卸载哪吒探针? [y/n] [n]:" input input=${input:-n} if [[ "$input" == "y" ]]; then if checknezhaAgentAlive; then - stopNeZhaAgent + stopNeZhaAgent fi local workedir="${installpath}/serv00-play/nezha" rm -rf $workedir @@ -1190,28 +1348,28 @@ uninstallAgent(){ } -setCnTimeZone(){ +setCnTimeZone() { read -p "确定设置中国上海时区? [y/n] [y]:" input input=${input:-y} - + cd ${installpath} if [ "$input" = "y" ]; then devil binexec on touch .profile - cat .profile | perl ./serv00-play/mkprofile.pl > tmp_profile + cat .profile | perl ./serv00-play/mkprofile.pl >tmp_profile mv -f tmp_profile .profile - - read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input + + read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input input=${input:-y} if [ "$input" = "y" ]; then - kill -9 $PPID + kill -9 $PPID fi fi - + } -setColorWord(){ +setColorWord() { cd ${installpath} # 定义颜色编码 bright_black="\033[1;90m" @@ -1242,26 +1400,29 @@ setColorWord(){ # 根据用户的选择设置颜色 case $color_choice in - 1) color_code="90" ;; # 明亮黑色 - 2) color_code="91" ;; # 明亮红色 - 3) color_code="92" ;; # 明亮绿色 - 4) color_code="93" ;; # 明亮黄色 - 5) color_code="94" ;; # 明亮蓝色 - 6) color_code="95" ;; # 明亮紫色 - 7) color_code="96" ;; # 明亮青色 - 8) color_code="97" ;; # 明亮白色 - *) echo "无效选择,使用默认颜色 (明亮白色)"; color_code="97" ;; + 1) color_code="90" ;; # 明亮黑色 + 2) color_code="91" ;; # 明亮红色 + 3) color_code="92" ;; # 明亮绿色 + 4) color_code="93" ;; # 明亮黄色 + 5) color_code="94" ;; # 明亮蓝色 + 6) color_code="95" ;; # 明亮紫色 + 7) color_code="96" ;; # 明亮青色 + 8) color_code="97" ;; # 明亮白色 + *) + echo "无效选择,使用默认颜色 (明亮白色)" + color_code="97" + ;; esac - - if grep "chAngEYourName" .profile > /dev/null ; then - cat .profile | grep -v "chAngEYourName" > tmp_profile - echo "echo -e \"\033[1;${color_code}m\$(figlet \"${name}\")\033[0m\" #chAngEYourName" >> tmp_profile - mv -f tmp_profile .profile + + if grep "chAngEYourName" .profile >/dev/null; then + cat .profile | grep -v "chAngEYourName" >tmp_profile + echo "echo -e \"\033[1;${color_code}m\$(figlet \"${name}\")\033[0m\" #chAngEYourName" >>tmp_profile + mv -f tmp_profile .profile else - echo "echo -e \"\033[1;${color_code}m\$(figlet \"${name}\")\033[0m\" #chAngEYourName" >> .profile + echo "echo -e \"\033[1;${color_code}m\$(figlet \"${name}\")\033[0m\" #chAngEYourName" >>.profile fi - read -p "设置完毕! 重新登录看效果? [y/n] [y]:" input + read -p "设置完毕! 重新登录看效果? [y/n] [y]:" input input=${input:-y} if [[ "$input" == "y" ]]; then kill -9 $PPID @@ -1269,17 +1430,17 @@ setColorWord(){ } -showIP(){ +showIP() { myip="$(curl -s icanhazip.com)" green "本机IP: $myip" } -uninstallMtg(){ +uninstallMtg() { read -p "确定卸载? [y/n] [n]:" input input=${input:-n} if [[ "$input" == "n" ]]; then - return 1 + return 1 fi if [[ -e "mtg" ]]; then @@ -1292,116 +1453,116 @@ uninstallMtg(){ fi } -installMtg(){ - if [ ! -e "mtg" ]; then +installMtg() { + if [ ! -e "mtg" ]; then # read -p "请输入使用密码:" password if ! checkDownload "mtg"; then return 1 fi - fi + fi - chmod +x ./mtg - if [ -e "config.json" ]; then - echo "已存在配置如下:" - cat config.json - read -p "是否重新生成配置? [y/n] [n]:" input - input=${input:-n} - if [ "$input" == "n" ]; then - return 0 - fi - fi - - #自动生成密钥 - head=$(hostname | cut -d '.' -f 1) - no=${head#s} - host="panel${no}.serv00.com" - secret=$(./mtg generate-secret --hex $host ) - loadPort - randomPort tcp mtg + chmod +x ./mtg + if [ -e "config.json" ]; then + echo "已存在配置如下:" + cat config.json + read -p "是否重新生成配置? [y/n] [n]:" input + input=${input:-n} + if [ "$input" == "n" ]; then + return 0 + fi + fi + + #自动生成密钥 + head=$(hostname | cut -d '.' -f 1) + no=${head#s} + host="panel${no}.serv00.com" + secret=$(./mtg generate-secret --hex $host) + loadPort + randomPort tcp mtg if [[ -n "$port" ]]; then - mtpport="$port" + mtpport="$port" fi - cat > config.json <config.json <&1 &" - eval "$cmd" - sleep 3 - if checkMtgAlive; then + cmd="nohup ./mtg simple-run -n 1.1.1.1 -t 30s -a 1MB 0.0.0.0:${port} ${secret} -c 8192 --prefer-ip=\"prefer-ipv6\" ${logfile} 2>&1 &" + eval "$cmd" + sleep 3 + if checkMtgAlive; then mtproto="https://t.me/proxy?server=${host}.serv00.com&port=${port}&secret=${secret}" - echo "$mtproto" - green "启动成功" - else - echo "启动失败,请检查进程" - fi + echo "$mtproto" + green "启动成功" + else + echo "启动失败,请检查进程" + fi } -stopMtg(){ - r=$(ps aux | grep mtg | grep -v "grep" | awk '{print $2}' ) +stopMtg() { + r=$(ps aux | grep mtg | grep -v "grep" | awk '{print $2}') if [ -z "$r" ]; then echo "没有运行!" return - else + else kill -9 $r fi echo "已停掉mtproto!" } -mtprotoServ(){ +mtprotoServ() { if ! checkInstalled "serv00-play"; then - return 1 + return 1 fi - cd ${installpath}/serv00-play + cd ${installpath}/serv00-play - if [ ! -e "dmtg" ]; then - mkdir -p dmtg - fi - cd dmtg + if [ ! -e "dmtg" ]; then + mkdir -p dmtg + fi + cd dmtg - while true; do + while true; do yellow "---------------------" echo "服务状态: $(checkProcStatus mtg)" echo "mtproto管理:" @@ -1413,59 +1574,64 @@ mtprotoServ(){ echo "0. 退出脚本" yellow "---------------------" read -p "请选择:" input - + case $input in - 1) installMtg - ;; - 2) startMtg - ;; - 3) stopMtg - ;; - 4) uninstallMtg - ;; - 9) break - ;; - 0) exit 0 - ;; - *) - echo "无效选项,请重试" - ;; + 1) + installMtg + ;; + 2) + startMtg + ;; + 3) + stopMtg + ;; + 4) + uninstallMtg + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; esac done showMenu - + } extract_user_and_password() { - output=$1 + output=$1 - username=$(echo "$output" | grep "username:" | sed 's/.*username: //') - password=$(echo "$output" | grep "password:" | sed 's/.*password: //') - echo "生成用户密码如下,请谨记! 只会出现一次:" - green "Username: $username" - green "Password: $password" + username=$(echo "$output" | grep "username:" | sed 's/.*username: //') + password=$(echo "$output" | grep "password:" | sed 's/.*password: //') + echo "生成用户密码如下,请谨记! 只会出现一次:" + green "Username: $username" + green "Password: $password" } update_http_port() { - cd data || return 1 - local port=$1 - local config_file="config.json" + cd data || return 1 + local port=$1 + local config_file="config.json" - if [ -z "$port" ]; then - echo "Error: No port number provided." - return 1 - fi - # 使用 jq 来更新配置文件中的 http_port - jq --argjson new_port "$port" '.scheme.http_port = $new_port' "$config_file" > tmp.$$.json && mv tmp.$$.json "$config_file" + if [ -z "$port" ]; then + echo "Error: No port number provided." + return 1 + fi + # 使用 jq 来更新配置文件中的 http_port + jq --argjson new_port "$port" '.scheme.http_port = $new_port' "$config_file" >tmp.$$.json && mv tmp.$$.json "$config_file" - echo "配置文件处理完毕." + echo "配置文件处理完毕." } - -installAlist(){ +installAlist() { if ! checkInstalled "serv00-play"; then - return 1 + return 1 fi cd ${installpath}/serv00-play/ || return 1 alistpath="${installpath}/serv00-play/alist" @@ -1473,28 +1639,28 @@ installAlist(){ if [[ ! -e "$alistpath" ]]; then mkdir -p $alistpath fi - if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then - echo "已安装,请勿重复安装。" - return - else - cd "alist" || return 1 - if [ ! -e "alist" ]; then - # read -p "请输入使用密码:" password - if ! checkDownload "alist"; then - return 1 - fi + if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then + echo "已安装,请勿重复安装。" + return + else + cd "alist" || return 1 + if [ ! -e "alist" ]; then + # read -p "请输入使用密码:" password + if ! checkDownload "alist"; then + return 1 fi + fi fi - loadPort + loadPort randomPort tcp alist if [[ -n "$port" ]]; then - alist_port="$port" + alist_port="$port" fi echo "正在安装alist,请等待..." domain="" webIp="" - if ! makeWWW alist $alist_port ; then + if ! makeWWW alist $alist_port; then echo "绑定域名失败!" return 1 fi @@ -1503,26 +1669,26 @@ installAlist(){ return 1 fi cd $alistpath - rt=$(chmod +x ./alist && ./alist admin random 2>&1 ) + rt=$(chmod +x ./alist && ./alist admin random 2>&1) extract_user_and_password "$rt" update_http_port "$alist_port" green "安装完毕" - + } -startAlist(){ +startAlist() { alistpath="${installpath}/serv00-play/alist" cd $alistpath domain=$(jq -r ".domain" config.json) - if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then + if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then cd $alistpath echo "正在启动alist..." - if checkProcAlive alist; then + if checkProcAlive alist; then echo "alist已启动,请勿重复启动!" else - nohup ./alist server > /dev/null 2>&1 & + nohup ./alist server >/dev/null 2>&1 & sleep 3 if ! checkProcAlive alist; then red "启动失败,请检查!" @@ -1534,16 +1700,16 @@ startAlist(){ fi else red "请先行安装再启动!" - return + return fi } -stopAlist(){ +stopAlist() { if checkProcAlive "alist"; then - stopProc "alist" - sleep 3 + stopProc "alist" + sleep 3 fi - + } # uninstallPHP(){ @@ -1553,13 +1719,13 @@ stopAlist(){ # yellow "已删除域名 $domain 的相关服务!" # } -uninstallProc(){ +uninstallProc() { local path=$1 local procname=$2 - if [ ! -e "$path" ]; then - red "未安装$procname!!!" - return 1 + if [ ! -e "$path" ]; then + red "未安装$procname!!!" + return 1 fi cd $path read -p "确定卸载${procname}吗? [y/n] [n]:" input @@ -1577,13 +1743,13 @@ uninstallProc(){ } -uninstallAlist(){ +uninstallAlist() { alistpath="${installpath}/serv00-play/alist" uninstallProc "$alistpath" alist - + } -resetAdminPass(){ +resetAdminPass() { alistpath="${installpath}/serv00-play/alist" cd $alistpath @@ -1591,41 +1757,48 @@ resetAdminPass(){ extract_user_and_password "$output" } -alistServ(){ +alistServ() { if ! checkInstalled "serv00-play"; then - return 1 + return 1 fi while true; do - yellow "----------------------" - echo "alist:" - echo "服务状态: $(checkProcStatus alist)" - echo "1. 安装部署alist " - echo "2. 启动alist" - echo "3. 停掉alist" - echo "4. 重置admin密码" - echo "8. 卸载alist" - echo "9. 返回主菜单" - echo "0. 退出脚本" - yellow "----------------------" - read -p "请选择:" input - - case $input in - 1) installAlist - ;; - 2) startAlist - ;; - 3) stopAlist - ;; - 4) resetAdminPass - ;; - 8) uninstallAlist - ;; - 9) break - ;; - 0) exit 0 - ;; - *) - echo "无效选项,请重试" + yellow "----------------------" + echo "alist:" + echo "服务状态: $(checkProcStatus alist)" + echo "1. 安装部署alist " + echo "2. 启动alist" + echo "3. 停掉alist" + echo "4. 重置admin密码" + echo "8. 卸载alist" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "----------------------" + read -p "请选择:" input + + case $input in + 1) + installAlist + ;; + 2) + startAlist + ;; + 3) + stopAlist + ;; + 4) + resetAdminPass + ;; + 8) + uninstallAlist + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" ;; esac done @@ -1633,30 +1806,29 @@ alistServ(){ } declare -a indexPorts -loadIndexPorts(){ +loadIndexPorts() { output=$(devil port list) indexPorts=() # 解析输出内容 index=0 while read -r port typ opis; do - # 跳过标题行 - if [[ "$port" =~ "Port" ]]; then - continue - fi - #echo "port:$port,typ:$typ, opis:$opis" - if [[ "$port" =~ "Brak" || "$port" =~ "No" ]]; then - echo "未分配端口" - return 0 - fi - - if [[ -n "$port" ]]; then - opis=${opis:-""} - indexPorts[$index]="$port|$typ|$opis" - ((index++)) - fi - done <<< "$output" + # 跳过标题行 + if [[ "$port" =~ "Port" ]]; then + continue + fi + #echo "port:$port,typ:$typ, opis:$opis" + if [[ "$port" =~ "Brak" || "$port" =~ "No" ]]; then + echo "未分配端口" + return 0 + fi + if [[ -n "$port" ]]; then + opis=${opis:-""} + indexPorts[$index]="$port|$typ|$opis" + ((index++)) + fi + done <<<"$output" } @@ -1666,41 +1838,40 @@ printIndexPorts() { for entry in "${indexPorts[@]}"; do # 使用 | 作为分隔符拆分 port、typ 和 opis - IFS='|' read -r port typ opis <<< "$entry" + IFS='|' read -r port typ opis <<<"$entry" echo "${i}. $port | $typ | $opis" ((i++)) done } - -delPortMenu(){ +delPortMenu() { loadIndexPorts if [[ ${#indexPorts[@]} -gt 0 ]]; then - printIndexPorts - read -p "请选择要删除的端口记录编号(输入0删除所有端口记录, 回车返回):" number - number=${number:-99} - - if [[ $number -eq 99 ]]; then - return - elif [[ $number -gt 3 || $number -lt 0 ]]; then - echo "非法输入!" - return - elif [[ $number -eq 0 ]]; then - cleanPort - else - idx=$((number-1)) - IFS='|' read -r port typ opis <<< ${indexPorts[$idx]} - devil port del $typ $port > /dev/null 2>&1 - fi - echo "删除完毕!" + printIndexPorts + read -p "请选择要删除的端口记录编号(输入0删除所有端口记录, 回车返回):" number + number=${number:-99} + + if [[ $number -eq 99 ]]; then + return + elif [[ $number -gt 3 || $number -lt 0 ]]; then + echo "非法输入!" + return + elif [[ $number -eq 0 ]]; then + cleanPort + else + idx=$((number - 1)) + IFS='|' read -r port typ opis <<<${indexPorts[$idx]} + devil port del $typ $port >/dev/null 2>&1 + fi + echo "删除完毕!" else - red "未有分配任何端口!" + red "未有分配任何端口!" fi - + } -addPortMenu(){ +addPortMenu() { echo "选择端口类型:" echo "1. tcp" echo "2. udp" @@ -1708,17 +1879,17 @@ addPortMenu(){ if [[ "$co" != "1" && "$co" != "2" ]]; then red "非法输入" - return + return fi local type="" if [[ "$co" == "1" ]]; then - type="tcp" + type="tcp" else - type="udp" + type="udp" fi loadPort read -p "请输入端口备注(如hy2,vmess,用于脚本自动获取端口):" opts - local port=$(getPort $type $opts ) + local port=$(getPort $type $opts) if [[ "$port" == "failed" ]]; then red "分配端口失败,请重新操作!" else @@ -1726,61 +1897,63 @@ addPortMenu(){ fi } -portServ(){ +portServ() { while true; do - yellow "----------------------" + yellow "----------------------" echo "端口管理:" echo "1. 删除某条端口记录" echo "2. 增加一条端口记录" echo "9. 返回主菜单" echo "0. 退出脚本" - yellow "----------------------" + yellow "----------------------" read -p "请选择:" input case $input in - 1) delPortMenu - ;; - 2) addPortMenu - ;; - 9) - break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; + 1) + delPortMenu + ;; + 2) + addPortMenu + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; esac done showMenu } -cronLE(){ +cronLE() { read -p "请输入定时运行的时间间隔(小时[1-23]):" tm tm=${tm:-""} if [[ -z "$tm" ]]; then - red "时间不能为空" - return 1 - fi + red "时间不能为空" + return 1 + fi if [[ $tm -lt 1 || $tm -gt 23 ]]; then red "输入非法!" - return 1 + return 1 fi - crontab -l > le.cron - echo "0 */$tm * * * $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >> le.cron - crontab le.cron > /dev/null 2>&1 + crontab -l >le.cron + echo "0 */$tm * * * $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron + crontab le.cron >/dev/null 2>&1 rm -rf le.cron echo "设置完毕!" } -get_default_webip(){ - local host="$(hostname | cut -d '.' -f 1)" - local sno=${host/s/web} - local webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') - echo "$webIp" +get_default_webip() { + local host="$(hostname | cut -d '.' -f 1)" + local sno=${host/s/web} + local webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') + echo "$webIp" } -applyLE(){ +applyLE() { local domain=$1 local webIp=$2 workpath="${installpath}/serv00-play/ssl" @@ -1795,24 +1968,24 @@ applyLE(){ fi fi inCron="0" - if crontab -l | grep -F "$domain" > /dev/null 2>&1 ; then - inCron="1" - echo "该域名已配置定时申请证书,是否删除定时配置记录,改为手动申请?[y/n] [n]:" input - input=${input:-n} + if crontab -l | grep -F "$domain" >/dev/null 2>&1; then + inCron="1" + echo "该域名已配置定时申请证书,是否删除定时配置记录,改为手动申请?[y/n] [n]:" input + input=${input:-n} - if [[ "$input" == "y" ]]; then - crontab -l | grep -v "$domain" | crontab - - fi + if [[ "$input" == "y" ]]; then + crontab -l | grep -v "$domain" | crontab - + fi fi if [[ -z "$webIp" ]]; then read -p "是否指定webip? [y/n] [n]:" input input=${input:-n} if [[ "$input" == "y" ]]; then - read -p "请输入webip:" webIp - if [[ -z "webIp" ]]; then - red "webip 不能为空!!!" - return 1 - fi + read -p "请输入webip:" webIp + if [[ -z "webIp" ]]; then + red "webip 不能为空!!!" + return 1 + fi else host="$(hostname | cut -d '.' -f 1)" sno=${host/s/web} @@ -1821,34 +1994,34 @@ applyLE(){ fi #echo "申请证书时,webip是: $webIp" resp=$(devil ssl www add $webIp le le $domain) - if [[ ! "$resp" =~ .*succesfully.*$ ]]; then - red "申请ssl证书失败!$resp" - if [[ "$inCron" == "0" ]]; then - read -p "是否配置定时任务自动申请SSL证书? [y/n] [n]:" input - input=${input:-n} - if [[ "$input" == "y" ]]; then - cronLE - fi - fi + if [[ ! "$resp" =~ .*succesfully.*$ ]]; then + red "申请ssl证书失败!$resp" + if [[ "$inCron" == "0" ]]; then + read -p "是否配置定时任务自动申请SSL证书? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" == "y" ]]; then + cronLE + fi + fi else - green "证书申请成功!" - fi + green "证书申请成功!" + fi } -selfSSL(){ +selfSSL() { workpath="${installpath}/serv00-play/ssl" cd "$workpath" read -p "请输入待申请证书的域名:" self_domain self_domain=${self_domain:-""} if [[ -z "$self_domain" ]]; then - red "域名不能为空" - return 1 + red "域名不能为空" + return 1 fi - + echo "正在生成证书..." - cat > openssl.cnf <openssl.cnf < /dev/null 2>&1 + openssl req -new -newkey rsa:2048 -nodes -keyout _private.key -x509 -days 3650 -out _cert.crt -config openssl.cnf -extensions v3_ca >/dev/null 2>&1 if [ $? -ne 0 ]; then echo "生成证书失败!" return 1 @@ -1887,18 +2060,18 @@ EOF host="$(hostname | cut -d '.' -f 1)" sno=${host/s/web} webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') - resp=$(devil ssl www add "$webIp" ./_cert.crt ./_private.key "$self_domain" ) + resp=$(devil ssl www add "$webIp" ./_cert.crt ./_private.key "$self_domain") - if [[ ! "$resp" =~ .*succesfully.*$ ]]; then - echo "导入证书失败:$resp" - return 1 + if [[ ! "$resp" =~ .*succesfully.*$ ]]; then + echo "导入证书失败:$resp" + return 1 fi echo "导入成功!" - + } -domainSSLServ(){ +domainSSLServ() { while true; do yellow "---------------------" echo "域名证书管理:" @@ -1908,87 +2081,90 @@ domainSSLServ(){ echo "0. 退出脚本" yellow "---------------------" read -p "请选择:" input - - case $input in - 1) applyLE - ;; - 2) selfSSL - ;; - 9) break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; - esac - done - showMenu -} - -installRoot(){ - workpath="${installpath}/serv00-play/root" - if [[ ! -e $workpath ]]; then - mkdir -p "$workpath" - fi - - if [[ -e "$workpath/MrChrootBSD/mrchroot" ]]; then - echo "检测到已经安装mrchroot,请勿重复安装!" - return - fi - echo "正在安装..." - cd $workpath - git clone https://github.com/nrootconauto/MrChrootBSD.git - cd MrChrootBSD - wget https://download.freebsd.org/releases/amd64/14.1-RELEASE/base.txz - wget https://download.freebsd.org/releases/amd64/14.1-RELEASE/lib32.txz #Needed for gdb for some reason - mkdir chroot - cd chroot - tar xvf ../base.txz - tar xvf ../lib32.txz - cd .. - cmake . - make - cp /etc/resolv.conf chroot/etc - if screen -S rootsession -dm ./mrchroot chroot /bin/sh; then - echo "安装成功!" - else - echo "安装失败!" - fi - -} - -enterRoot(){ - workpath="${installpath}/serv00-play/root/MrChrootBSD" - if [[ ! -e "$workpath/mrchroot" ]]; then - red "未安装mrchroot,请先行安装!" - return - fi - - SESSION_NAME="rootsession" - if screen -list | grep -q "\.$SESSION_NAME"; then - echo "进入root..." - screen -r "$SESSION_NAME" - else - echo "未发现root进程,尝试创建井进入root..." - cd $workpath - if screen -S $SESSION_NAME -dm ./mrchroot chroot /bin/sh; then - echo "创建成功!" - screen -r "$SESSION_NAME" - else - echo "创建失败!" - fi + case $input in + 1) + applyLE + ;; + 2) + selfSSL + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu +} + +installRoot() { + workpath="${installpath}/serv00-play/root" + if [[ ! -e $workpath ]]; then + mkdir -p "$workpath" + fi + + if [[ -e "$workpath/MrChrootBSD/mrchroot" ]]; then + echo "检测到已经安装mrchroot,请勿重复安装!" + return + fi + echo "正在安装..." + cd $workpath + git clone https://github.com/nrootconauto/MrChrootBSD.git + cd MrChrootBSD + wget https://download.freebsd.org/releases/amd64/14.1-RELEASE/base.txz + wget https://download.freebsd.org/releases/amd64/14.1-RELEASE/lib32.txz #Needed for gdb for some reason + mkdir chroot + cd chroot + tar xvf ../base.txz + tar xvf ../lib32.txz + cd .. + cmake . + make + cp /etc/resolv.conf chroot/etc + if screen -S rootsession -dm ./mrchroot chroot /bin/sh; then + echo "安装成功!" + else + echo "安装失败!" + fi + +} + +enterRoot() { + workpath="${installpath}/serv00-play/root/MrChrootBSD" + if [[ ! -e "$workpath/mrchroot" ]]; then + red "未安装mrchroot,请先行安装!" + return + fi + + SESSION_NAME="rootsession" + if screen -list | grep -q "\.$SESSION_NAME"; then + echo "进入root..." + screen -r "$SESSION_NAME" + else + echo "未发现root进程,尝试创建井进入root..." + cd $workpath + if screen -S $SESSION_NAME -dm ./mrchroot chroot /bin/sh; then + echo "创建成功!" + screen -r "$SESSION_NAME" + else + echo "创建失败!" fi + + fi } -uninstallRoot(){ +uninstallRoot() { SESSION_NAME="rootsession" if [[ ! -e "${installpath}/serv00-play/root" ]]; then - echo "未安装root,无需卸载!" - return + echo "未安装root,无需卸载!" + return fi read -p "确定卸载root吗?[y/n] [n]:" input @@ -2004,11 +2180,11 @@ uninstallRoot(){ cd $workpath rm -rf ./root fi - + green "卸载完毕!" } -rootServ(){ +rootServ() { while true; do yellow "---------------------" echo "一键root:" @@ -2019,26 +2195,32 @@ rootServ(){ echo "0. 退出脚本" yellow "---------------------" read -p "请选择:" input - - case $input in - 1) installRoot - ;; - 2) enterRoot - ;; - 3) uninstallRoot - ;; - 9) break - ;; - 0) exit 0 - ;; - *) echo "无效选项,请重试" - ;; - esac - done - showMenu -} - -getUnblockIP(){ + + case $input in + 1) + installRoot + ;; + 2) + enterRoot + ;; + 3) + uninstallRoot + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu +} + +getUnblockIP() { local hostname=$(hostname) local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') local hosts=("cache${host_number}.serv00.com" "web${host_number}.serv00.com" "$hostname") @@ -2058,24 +2240,24 @@ getUnblockIP(){ fi local ip=$(echo "$response" | awk -F "|" '{print $1 }') local status=$(echo "$response" | awk -F "|" '{print $2 }') - printf "%-20s | %-15s | %-10s\n" "$host" "$ip" "$status" + printf "%-20s | %-15s | %-10s\n" "$host" "$ip" "$status" done - + } -checkProcStatus(){ +checkProcStatus() { local procname=$1 - if checkProcAlive $procname ; then - green "运行" + if checkProcAlive $procname; then + green "运行" else - red "未运行" + red "未运行" fi - + } -sunPanelServ(){ +sunPanelServ() { if ! checkInstalled "serv00-play"; then - return 1 + return 1 fi while true; do yellow "---------------------" @@ -2090,104 +2272,112 @@ sunPanelServ(){ echo "0. 退出脚本" yellow "---------------------" read -p "请选择:" input - - case $input in - 1) installSunPanel - ;; - 2) startSunPanel - ;; - 3) stopSunPanel - ;; - 4) resetSunPanelPwd - ;; - 8) uninstallSunPanel - ;; - 9) break - ;; - 0) exit 0 - ;; - *) echo "无效选项,请重试" - ;; - esac - done - showMenu -} - -uninstallSunPanel(){ + + case $input in + 1) + installSunPanel + ;; + 2) + startSunPanel + ;; + 3) + stopSunPanel + ;; + 4) + resetSunPanelPwd + ;; + 8) + uninstallSunPanel + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu +} + +uninstallSunPanel() { local workdir="${installpath}/serv00-play/sunpanel" uninstallProc "$workdir" "sun-panel" } -resetSunPanelPwd(){ +resetSunPanelPwd() { local exepath="${installpath}/serv00-play/sunpanel/sun-panel" if [[ ! -e $exepath ]]; then - echo "未安装,请先安装!" - return + echo "未安装,请先安装!" + return fi read -p "确定初始化密码? [y/n][n]:" input input=${input:-n} if [[ "$input" == "y" ]]; then - local workdir="${installpath}/serv00-play/sunpanel" - cd $workdir - ./sun-panel -password-reset + local workdir="${installpath}/serv00-play/sunpanel" + cd $workdir + ./sun-panel -password-reset fi - + } -stopSunPanel(){ +stopSunPanel() { stopProc "sun-panel" if checkProcAlive "sun-panel"; then - echo "未能停止,请手动杀进程!" + echo "未能停止,请手动杀进程!" fi - + } -installSunPanel(){ +installSunPanel() { local workdir="${installpath}/serv00-play/sunpanel" local exepath="${installpath}/serv00-play/sunpanel/sun-panel" if [[ -e $exepath ]]; then - echo "已安装,请勿重复安装!" - return + echo "已安装,请勿重复安装!" + return fi mkdir -p $workdir cd $workdir if ! checkDownload "sun-panel"; then - return 1 + return 1 fi if ! checkDownload "panelweb" 1; then - return 1 + return 1 fi - + if [[ ! -e "sun-panel" ]]; then - echo "下载文件解压失败!" - return 1 + echo "下载文件解压失败!" + return 1 fi #初始化密码,并且生成相关目录文件 ./sun-panel -password-reset if [[ ! -e "conf/conf.ini" ]]; then - echo "无配置文件生成!" - return 1 + echo "无配置文件生成!" + return 1 fi - + loadPort port="" randomPort "tcp" "sun-panel" if [ -n "$port" ]; then - sunPanelPort=$port + sunPanelPort=$port else - echo "未输入端口!" - return 1 + echo "未输入端口!" + return 1 fi cd conf sed -i.bak -E "s/^http_port=[0-9]+$/http_port=${sunPanelPort}/" conf.ini cd .. - + domain="" webIp="" - if ! makeWWW panel $sunPanelPort ; then + if ! makeWWW panel $sunPanelPort; then echo "绑定域名失败!" return 1 fi @@ -2197,21 +2387,21 @@ installSunPanel(){ echo "申请证书失败!" return 1 fi - else # 没有自定义域名时,webip是内置固定的,就是web(x).serv00.com - if ! applyLE $domain ; then + else # 没有自定义域名时,webip是内置固定的,就是web(x).serv00.com + if ! applyLE $domain; then echo "申请证书失败!" return 1 fi fi green "安装完毕!" - + } -makeWWW(){ +makeWWW() { local proc=$1 local port=$2 local www_type=${3:-"proxy"} - + echo "正在处理服务IP,请等待..." is_self_domain=0 webIp=$(get_webip) @@ -2224,7 +2414,7 @@ makeWWW(){ read -p "请输入域名(确保此前域名已指向webip):" domain else user="$(whoami)" - if isServ00 ; then + if isServ00; then domain="${proc}.$user.serv00.net" else domain="$proc.$user.ct8.pl" @@ -2235,7 +2425,7 @@ makeWWW(){ red "输入无效域名!" return 1 fi - + domain=${domain,,} echo "正在绑定域名,请等待..." if [[ "$www_type" == "proxy" ]]; then @@ -2244,13 +2434,13 @@ makeWWW(){ resp=$(devil www add $domain php) fi #echo "resp:$resp" - if [[ ! "$resp" =~ .*succesfully.*$ && ! "$resp" =~ .*Ok.*$ ]]; then - if [[ ! "$resp" =~ "This domain already exists" ]]; then - red "申请域名$domain 失败!" - return 1 - fi + if [[ ! "$resp" =~ .*succesfully.*$ && ! "$resp" =~ .*Ok.*$ ]]; then + if [[ ! "$resp" =~ "This domain already exists" ]]; then + red "申请域名$domain 失败!" + return 1 + fi fi - + # 自定义域名的特殊处理 if [[ $is_self_domain -eq 1 ]]; then host="$(hostname | cut -d '.' -f 1)" @@ -2259,12 +2449,12 @@ makeWWW(){ rid=$(devil dns list "$domain" | grep "$default_webIp" | awk '{print $1}') resp=$(echo "y" | devil dns del "$domain" $rid) #echo "resp:$resp" - else + else webIp=$(get_default_webip) fi # 保存信息 if [[ "$www_type" == "proxy" ]]; then - cat > config.json <config.json < $configfile < $configfile <> "$profile" - source $profile + echo "export PATH=$target_path:\$PATH" >>"$profile" + source $profile fi domain="" webIp="" - if ! makeWWW ssh $websshPort ; then + if ! makeWWW ssh $websshPort; then echo "绑定域名失败!" return 1 fi @@ -2524,34 +2725,34 @@ installWebSSH(){ return 1 fi echo "安装完成!" - + } -stopWebSSH(){ +stopWebSSH() { stopProc "wssh" sleep 2 if ! checkProcAlive "wssh"; then - echo "wssh已停止!" + echo "wssh已停止!" else - echo "未能停止,请手动杀进程!" + echo "未能停止,请手动杀进程!" fi } -startWebSSH(){ +startWebSSH() { local workdir="${installpath}/serv00-play/webssh" local configfile="$workdir/config.json" if [ ! -e "$configfile" ]; then - echo "未安装,请先安装!" - return + echo "未安装,请先安装!" + return fi cd $workdir read -p "是否需要日志($workdir/running.log)? [y/n] [n]:" input input=${input:-n} args="" if [[ "$input" == "y" ]]; then - args=" > running.log 2>&1 " + args=" > running.log 2>&1 " else - args=" > /dev/null 2>&1 " + args=" > /dev/null 2>&1 " fi port=$(jq -r ".port" $configfile) if checkProcAlive "wssh"; then @@ -2568,7 +2769,7 @@ startWebSSH(){ fi } -nonServ(){ +nonServ() { cat <" echo -e "${CYAN}${art_wrod}${RESET}" @@ -2639,100 +2840,98 @@ showMenu(){ echo "<------------------------------------------------------------------>" echo "请选择一个选项:" - options=("安装/更新serv00-play项目" "sun-panel" "webssh" "阅后即焚" "待开发" "设置保活的项目" "配置sing-box" \ - "运行sing-box" "停止sing-box" "显示sing-box节点信息" "快照恢复" "系统初始化" "前置工作及设置中国时区" "管理哪吒探针" "卸载探针" "设置彩色开机字样" "显示本机IP" \ - "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "卸载" ) - - select opt in "${options[@]}" - do - case $REPLY in - 1) - install - ;; - 2) - sunPanelServ - ;; - 3) - websshServ - ;; - 4) - burnAfterReadingServ - ;; - 5) - nonServ - ;; - 6) - setConfig - ;; - 7) - configSingBox - ;; - 8) - startSingBox - ;; - 9) - stopSingBox - ;; - 10) - showSingBoxInfo - ;; - 11) - ImageRecovery - ;; - 12) - InitServer - ;; - 13) - setCnTimeZone - ;; - 14) - manageNeZhaAgent - ;; - 15) - uninstallAgent - ;; - 16) - setColorWord - ;; - 17) - showIP - ;; - 18) - mtprotoServ - ;; - 19) - alistServ - ;; - 20) - portServ - ;; - 21) - domainSSLServ - ;; - 22) - rootServ - ;; - 23) - getUnblockIP - ;; - 24) - changeHy2IP - ;; - 25) - uninstall - ;; - 0) - echo "退出" - exit 0 - ;; - *) - echo "无效的选项 " - ;; - esac - + options=("安装/更新serv00-play项目" "sun-panel" "webssh" "阅后即焚" "待开发" "设置保活的项目" "配置sing-box" + "运行sing-box" "停止sing-box" "显示sing-box节点信息" "快照恢复" "系统初始化" "前置工作及设置中国时区" "管理哪吒探针" "卸载探针" "设置彩色开机字样" "显示本机IP" + "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "卸载") + + select opt in "${options[@]}"; do + case $REPLY in + 1) + install + ;; + 2) + sunPanelServ + ;; + 3) + websshServ + ;; + 4) + burnAfterReadingServ + ;; + 5) + nonServ + ;; + 6) + setConfig + ;; + 7) + configSingBox + ;; + 8) + startSingBox + ;; + 9) + stopSingBox + ;; + 10) + showSingBoxInfo + ;; + 11) + ImageRecovery + ;; + 12) + InitServer + ;; + 13) + setCnTimeZone + ;; + 14) + manageNeZhaAgent + ;; + 15) + uninstallAgent + ;; + 16) + setColorWord + ;; + 17) + showIP + ;; + 18) + mtprotoServ + ;; + 19) + alistServ + ;; + 20) + portServ + ;; + 21) + domainSSLServ + ;; + 22) + rootServ + ;; + 23) + getUnblockIP + ;; + 24) + changeHy2IP + ;; + 25) + uninstall + ;; + 0) + echo "退出" + exit 0 + ;; + *) + echo "无效的选项 " + ;; + esac + done } - -showMenu \ No newline at end of file +showMenu diff --git a/wxsend.sh b/wxsend.sh old mode 100755 new mode 100644 index 40adade3..86424c9f --- a/wxsend.sh +++ b/wxsend.sh @@ -1,24 +1,24 @@ -#!/bin/bash - -text=$1 - -sendKey=${WXSENDKEY} -title="msg_from_serv00-play" -URL="https://sctapi.ftqq.com/$sendKey.send?" - -if [[ -z ${sendKey} ]]; then - echo "未配置微信推送的sendKey,通过 https://sct.ftqq.com/r/13223 注册并登录server酱,取得sendKey" -else - res=$(timeout 20s curl -s -X POST $URL -d title=${title} -d desp="${text}") - if [ $? == 124 ]; then - echo "发送消息超时" - exit 1 - fi - - err=$(echo "$res" | jq -r ".data.error") - if [ "$err" == "SUCCESS" ]; then - echo "微信推送成功" - else - echo "微信推送失败, error:$err" - fi -fi +#!/bin/bash + +text=$1 + +sendKey=${WXSENDKEY} +title="msg_from_serv00-play" +URL="https://sctapi.ftqq.com/$sendKey.send?" + +if [[ -z ${sendKey} ]]; then + echo "未配置微信推送的sendKey,通过 https://sct.ftqq.com/r/13223 注册并登录server酱,取得sendKey" +else + res=$(timeout 20s curl -s -X POST $URL -d title=${title} -d desp="${text}") + if [ $? == 124 ]; then + echo "发送消息超时" + exit 1 + fi + + err=$(echo "$res" | jq -r ".data.error") + if [ "$err" == "SUCCESS" ]; then + echo "微信推送成功" + else + echo "微信推送失败, error:$err" + fi +fi From 8c88f6913a1954104d7c33a03eb959a8808294f6 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 2 Jan 2025 01:43:27 +0800 Subject: [PATCH 019/210] =?UTF-8?q?=E6=9C=AC=E5=9C=B0argo+action=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- revive.sh | 79 ++++++++++++++++++++++++++++++++----------------------- start.sh | 2 +- tgsend.sh | 15 ++++++----- 4 files changed, 58 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 136eb576..5cf142d3 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,8 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st | WXSENDKEY | 略 | server 酱的 sendkey,用于接收微信消息 (发送微信消息必选) | | SENDTYPE | 3 | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | | BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选),支持#HOST,#USER,#PASS 等变量。 | -| AUTOUPDATE | Y | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | +| AUTOUPDATE | Y/N | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | +| LOGININFO | Y/N | 在 variable 变量中设置(默认为 N),Y:发送登录汇总消息 N:只在登录失败时发送 | 各主机保活时可不必输入消息通知参数,由 github 同一配置参数。 diff --git a/revive.sh b/revive.sh index c306d374..c9300bbf 100644 --- a/revive.sh +++ b/revive.sh @@ -1,33 +1,46 @@ -#!/bin/bash - -AUTOUPDATE=${AUTOUPDATE:-Y} -SENDTYPE=${SENDTYPE:-null} -TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} -TELEGRAM_USERID=${TELEGRAM_USERID:-null} -WXSENDKEY=${WXSENDKEY:-null} -BUTTON_URL=${BUTTON_URL:-null} - -# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 -hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) - -for info in "${hosts_info[@]}"; do - user=$(echo $info | jq -r ".username") - host=$(echo $info | jq -r ".host") - port=$(echo $info | jq -r ".port") - pass=$(echo $info | jq -r ".password") - - if [[ "$AUTOUPDATE" == "Y" ]]; then - script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" - else - script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" - fi - output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") - - echo "output:$output" - if echo "$output" | grep -q "keepalive.sh"; then - echo "登录成功" - else - echo "登录失败" - ./tgsend.sh "Host:$host,user:$user,登录失败请检查!" - fi -done +#!/bin/bash + +AUTOUPDATE=${AUTOUPDATE:-Y} +SENDTYPE=${SENDTYPE:-null} +TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} +TELEGRAM_USERID=${TELEGRAM_USERID:-null} +WXSENDKEY=${WXSENDKEY:-null} +BUTTON_URL=${BUTTON_URL:-null} +LOGININFO=${LOGININFO:-N} +export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL + +# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 +hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) +summary="" +for info in "${hosts_info[@]}"; do + user=$(echo $info | jq -r ".username") + host=$(echo $info | jq -r ".host") + port=$(echo $info | jq -r ".port") + pass=$(echo $info | jq -r ".password") + + if [[ "$AUTOUPDATE" == "Y" ]]; then + script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" + else + script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" + fi + output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") + + echo "output:$output" + + if echo "$output" | grep -q "keepalive.sh"; then + echo "登录成功" + msg="🟢主机 ${host}, 用户 ${user}, 登录成功!\n" + else + echo "登录失败" + msg="🔴主机 ${host}, 用户 ${user}, 登录失败!\n" + chmod +x ./tgsend.sh + export PASS=$pass + ./tgsend.sh "Host:$host, user:$user, 登录失败,请检查!" + fi + summary=$summary$(echo -n $msg) +done + +if [[ "$LOGININFO" == "Y" ]]; then + chmod +x ./tgsend.sh + ./tgsend.sh "$summary" +fi diff --git a/start.sh b/start.sh index e0533933..cdf1dffc 100644 --- a/start.sh +++ b/start.sh @@ -531,7 +531,7 @@ localArgo() { sleep 1 echo "请把以下链接copy到浏览器打开,并选择你要作为隧道用的域名(如需中断,请按ctrl+c):" rt=$(./cloudflared login) - echo "rt: $rt" + echo "$rt" read -p "告诉我你选了哪个域名:" domain if [[ -z "$domain" ]]; then red "未有输入!" diff --git a/tgsend.sh b/tgsend.sh index ee3d4b94..70db133a 100644 --- a/tgsend.sh +++ b/tgsend.sh @@ -67,12 +67,15 @@ telegramBotUserId=${TELEGRAM_USERID} formatted_msg=$(toTGMsg "$message_text") button_url=${BUTTON_URL:-"https://www.youtube.com/@frankiejun8965"} URL="https://api.telegram.org/bot${telegramBotToken}/sendMessage" -host=$(hostname) -user=$(whoami) -pass=$(toBase64 $PASS) -button_url=$(replaceValue $button_url HOST $host) -button_url=$(replaceValue $button_url USER $user) -button_url=$(replaceValue $button_url PASS $pass) + +if [[ -n "$PASS" ]]; then + host=$(hostname) + user=$(whoami) + pass=$(toBase64 $PASS) + button_url=$(replaceValue $button_url HOST $host) + button_url=$(replaceValue $button_url USER $user) + button_url=$(replaceValue $button_url PASS $pass) +fi encoded_url=$(urlencode "$button_url") #echo "encoded_url: $encoded_url" reply_markup='{ From 0f64374378295576740c81d30e3c10cd7c61d296 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 2 Jan 2025 18:44:45 +0800 Subject: [PATCH 020/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E7=9A=84=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- start.sh | 2 +- tgsend.sh | 10 ++++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 5cf142d3..ef63878d 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st 3.检查主机上保活用的 cronjob 是否被删,若被删重建保活 cronjob 4.自动更新 serv00-play 代码 5.同步更新 telegram、微信等参数 -6.登录失败有 TG 消息通知,提醒可能封号(平时正常不会给你发消息,发消息之时便是你封号之日) +6.默认情况下只有登录失败才有 TG 消息通知,提醒可能封号(平时正常不会给你发消息,发消息之时便是你封号之日) ## 消息推送 diff --git a/start.sh b/start.sh index cdf1dffc..2735d7ca 100644 --- a/start.sh +++ b/start.sh @@ -1122,7 +1122,7 @@ InitServer() { green "清理进程中..." killUserProc green "清理磁盘中..." - if [[ "$saveProfile" = "y" ]] || [[ "$saveProfile" = "Y" ]]; then + if [[ "$saveProfile" == "y" ]] || [[ "$saveProfile" == "Y" ]]; then rm -rf ~/* 2>/dev/null else rm -rf ~/* ~/.* 2>/dev/null diff --git a/tgsend.sh b/tgsend.sh index 70db133a..fba217a6 100644 --- a/tgsend.sh +++ b/tgsend.sh @@ -59,18 +59,20 @@ toTGMsg() { formatted_msg+="${time_icon} *时间:* ${current_time} \n\n" formatted_msg+="${notify_icon} *通知内容:* ${notify_content} \n\n" - echo -e "$formatted_msg" # 使用 -e 选项以确保换行符生效 + echo -e "$formatted_msg|${host}|${user}" # 使用 -e 选项以确保换行符生效 } telegramBotToken=${TELEGRAM_TOKEN} telegramBotUserId=${TELEGRAM_USERID} -formatted_msg=$(toTGMsg "$message_text") +result=$(toTGMsg "$message_text") +formatted_msg=$(echo "$result" | awk -F'|' '{print $1}') +host=$(echo "$result" | awk -F'|' '{print $2}') +user=$(echo "$result" | awk -F'|' '{print $3}') + button_url=${BUTTON_URL:-"https://www.youtube.com/@frankiejun8965"} URL="https://api.telegram.org/bot${telegramBotToken}/sendMessage" if [[ -n "$PASS" ]]; then - host=$(hostname) - user=$(whoami) pass=$(toBase64 $PASS) button_url=$(replaceValue $button_url HOST $host) button_url=$(replaceValue $button_url USER $user) From dce6ef6b87e5bc3bc7d4b7aebabbcf8acb5c9462 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 2 Jan 2025 19:00:19 +0800 Subject: [PATCH 021/210] =?UTF-8?q?=E8=B5=8B=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/start.sh b/start.sh index 2735d7ca..cee874bc 100644 --- a/start.sh +++ b/start.sh @@ -52,7 +52,19 @@ install() { touch .profile cat .profile | perl ./serv00-play/mkprofile.pl >tmp_profile mv -f tmp_profile .profile + if [[ ! -e "${installpath}/serv00-play" ]]; then + red "安装不成功!" + return + fi + cd ${installpath}/serv00-play + chmod +x ./start.sh + chmod +x ./keepalive.sh + chmod +x ./tgsend.sh + chmod +x ./wxsend.sh + chmod +x ${installpath}/serv00-play/singbox/start.sh + chmod +x ${installpath}/serv00-play/singbox/killsing-box.sh + chmod +x ${installpath}/serv00-play/ssl/cronSSL.sh read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input input=${input:-y} From 7c0e1d33d11c96ace27723bc359cc5f3f35b7465 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 2 Jan 2025 19:02:09 +0800 Subject: [PATCH 022/210] =?UTF-8?q?=E8=B5=8B=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/start.sh b/start.sh index cee874bc..bb3fd3a5 100644 --- a/start.sh +++ b/start.sh @@ -34,6 +34,8 @@ install() { #重新给各个脚本赋权限 chmod +x ./start.sh chmod +x ./keepalive.sh + chmod +x ./tgsend.sh + chmod +x ./wxsend.sh chmod +x ${installpath}/serv00-play/singbox/start.sh chmod +x ${installpath}/serv00-play/singbox/killsing-box.sh chmod +x ${installpath}/serv00-play/ssl/cronSSL.sh From 1e48f18538d3e763898f0b9d91d90afce3d1e62c Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 2 Jan 2025 19:09:11 +0800 Subject: [PATCH 023/210] =?UTF-8?q?=E6=9C=AC=E5=9C=B0argo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/start.sh b/start.sh index bb3fd3a5..f0c6a219 100644 --- a/start.sh +++ b/start.sh @@ -543,6 +543,9 @@ localArgo() { fi fi sleep 1 + if ! checkDownload "cloudflared"; then + return + fi echo "请把以下链接copy到浏览器打开,并选择你要作为隧道用的域名(如需中断,请按ctrl+c):" rt=$(./cloudflared login) echo "$rt" From c1ea4acb0c18883d1f8f3eeb81574f22cfd2fa80 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 2 Jan 2025 19:18:56 +0800 Subject: [PATCH 024/210] format problem --- mkprofile.pl | 66 +++++++------- singbox/start.sh | 218 +++++++++++++++++++++++------------------------ ssl/cronSSL.sh | 56 ++++++------ 3 files changed, 168 insertions(+), 172 deletions(-) diff --git a/mkprofile.pl b/mkprofile.pl index 69d8b175..881656f6 100644 --- a/mkprofile.pl +++ b/mkprofile.pl @@ -1,34 +1,34 @@ -#!/bin/perl - -$addflag=0; -$flag=0; -$content=qq{ -#added by serv00-play begin -export TZ=Asia/Shanghai -export EDITOR=vim -export VISUAL=vim -export LANG=en_US.UTF-8 -export LC_ALL=en_US.UTF-8 -alias l='ls -ltr' -alias pp='ps aux' -alias ss='cd ~/serv00-play && ./start.sh' -#added by serv00-play end -}; - -while(<>){ - if( /^#added by serv00-play begin/){ - $addflag=1; - $flag=1; - print $content, "\n"; - }else{ - if (/^#added by serv00-play end/){ - $flag=0; - }else{ - print if $flag==0; - } - } -} - -if( $addflag==0 ){ - print $content, "\n"; +#!/bin/perl + +$addflag=0; +$flag=0; +$content=qq{ +#added by serv00-play begin +export TZ=Asia/Shanghai +export EDITOR=vim +export VISUAL=vim +export LANG=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 +alias l='ls -ltr' +alias pp='ps aux' +alias ss='cd ~/serv00-play && ./start.sh' +#added by serv00-play end +}; + +while(<>){ + if( /^#added by serv00-play begin/){ + $addflag=1; + $flag=1; + print $content, "\n"; + }else{ + if (/^#added by serv00-play end/){ + $flag=0; + }else{ + print if $flag==0; + } + } +} + +if( $addflag==0 ){ + print $content, "\n"; } \ No newline at end of file diff --git a/singbox/start.sh b/singbox/start.sh index 72d4fe32..b2bfa1be 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -1,111 +1,107 @@ -#!/bin/bash - -config="singbox.json" - -VMPORT=$(jq -r ".VMPORT" $config) -HY2PORT=$(jq -r ".HY2PORT" $config) -HY2IP=$(jq -r ".HY2IP" $config) -UUID=$(jq -r ".UUID" $config) -WSPATH=$(jq -r ".WSPATH" $config) - -ARGO_AUTH=$(jq -r ".ARGO_AUTH" $config) -ARGO_DOMAIN=$(jq -r ".ARGO_DOMAIN" $config) -TUNNEL_NAME=$(jq -r ".TUNNEL_NAME" $config) -GOOD_DOMAIN=$(jq -r ".GOOD_DOMAIN" $config) -SOCKS5_PORT=$(jq -r ".SOCKS5_PORT" $config) -SOCKS5_USER=$(jq -r ".SOCKS5_USER" $config) -SOCKS5_PASS=$(jq -r ".SOCKS5_PASS" $config) - - -if [ -z $1 ]; then - type=$(jq -r ".TYPE" $config) -else - type=$1 -fi - -keep=$2 - - - -run() { - if ps aux | grep cloudflared | grep -v "grep" >/dev/null; then - return - fi - if [[ "${ARGO_AUTH}" != "null" && "${ARGO_DOMAIN}" != "null" ]]; then - nohup ./cloudflared tunnel --edge-ip-version auto --protocol http2 run --token ${ARGO_AUTH} >/dev/null 2>&1 & - elif [[ "$ARGO_DOMAIN" != "null" && "$TUNNEL_NAME" != "null" ]]; then - nohup ./cloudflared tunnel run $TUNNEL_NAME > /dev/null 2>&1 & - else - echo "未有tunnel相关配置!" - return 1 - fi -} - -export_list() { - user="$(whoami)" - host="$(hostname | cut -d '.' -f 1)" - if [[ "$HY2IP" != "::" ]]; then - myip=${HY2IP} - else - myip="$(curl -s icanhazip.com)" - fi - if [[ "$GOOD_DOMAIN" == "null" ]]; then - GOOD_DOMAIN="www.visa.com.hk" - fi - vmessname="Argo-vmess-$host-$user" - hy2name="Hy2-$host-$user" - VMESSWS="{\"v\":\"2\",\"ps\": \"Vmessws-${host}-${user}\", \"add\":\"www.visa.com.hk\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" - ARGOVMESS="{ \"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\" }" - hysteria2="hysteria2://$UUID@$myip:$HY2PORT/?sni=www.bing.com&alpn=h3&insecure=1#$hy2name" - socks5="https://t.me/socks?server=${host}.serv00.com&port=${SOCKS5_PORT}&user=${SOCKS5_USER}&pass=${SOCKS5_PASS}" - proxyip="proxyip://${SOCKS5_USER}:${SOCKS5_PASS}@${host}.serv00.com:${SOCKS5_PORT}" - - - cat >list </dev/null; then - nohup ./serv00sb run -c ./config.json >/dev/null 2>&1 & - fi -elif [[ "$type" =~ ^(1|3|1.1|3.1|4.4|2.4)$ ]]; then - chmod +x ./serv00sb - if ! ps aux | grep serv00sb | grep -v "grep" >/dev/null; then - nohup ./serv00sb run -c ./config.json >/dev/null 2>&1 & - fi -fi - -if [ -z "$keep" ]; then - export_list -fi -exit 0 +#!/bin/bash + +config="singbox.json" + +VMPORT=$(jq -r ".VMPORT" $config) +HY2PORT=$(jq -r ".HY2PORT" $config) +HY2IP=$(jq -r ".HY2IP" $config) +UUID=$(jq -r ".UUID" $config) +WSPATH=$(jq -r ".WSPATH" $config) + +ARGO_AUTH=$(jq -r ".ARGO_AUTH" $config) +ARGO_DOMAIN=$(jq -r ".ARGO_DOMAIN" $config) +TUNNEL_NAME=$(jq -r ".TUNNEL_NAME" $config) +GOOD_DOMAIN=$(jq -r ".GOOD_DOMAIN" $config) +SOCKS5_PORT=$(jq -r ".SOCKS5_PORT" $config) +SOCKS5_USER=$(jq -r ".SOCKS5_USER" $config) +SOCKS5_PASS=$(jq -r ".SOCKS5_PASS" $config) + +if [ -z $1 ]; then + type=$(jq -r ".TYPE" $config) +else + type=$1 +fi + +keep=$2 + +run() { + if ps aux | grep cloudflared | grep -v "grep" >/dev/null; then + return + fi + if [[ "${ARGO_AUTH}" != "null" && "${ARGO_DOMAIN}" != "null" ]]; then + nohup ./cloudflared tunnel --edge-ip-version auto --protocol http2 run --token ${ARGO_AUTH} >/dev/null 2>&1 & + elif [[ "$ARGO_DOMAIN" != "null" && "$TUNNEL_NAME" != "null" ]]; then + nohup ./cloudflared tunnel run $TUNNEL_NAME >/dev/null 2>&1 & + else + echo "未有tunnel相关配置!" + return 1 + fi +} + +export_list() { + user="$(whoami)" + host="$(hostname | cut -d '.' -f 1)" + if [[ "$HY2IP" != "::" ]]; then + myip=${HY2IP} + else + myip="$(curl -s icanhazip.com)" + fi + if [[ "$GOOD_DOMAIN" == "null" ]]; then + GOOD_DOMAIN="www.visa.com.hk" + fi + vmessname="Argo-vmess-$host-$user" + hy2name="Hy2-$host-$user" + VMESSWS="{\"v\":\"2\",\"ps\": \"Vmessws-${host}-${user}\", \"add\":\"www.visa.com.hk\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" + ARGOVMESS="{ \"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\" }" + hysteria2="hysteria2://$UUID@$myip:$HY2PORT/?sni=www.bing.com&alpn=h3&insecure=1#$hy2name" + socks5="https://t.me/socks?server=${host}.serv00.com&port=${SOCKS5_PORT}&user=${SOCKS5_USER}&pass=${SOCKS5_PASS}" + proxyip="proxyip://${SOCKS5_USER}:${SOCKS5_PASS}@${host}.serv00.com:${SOCKS5_PORT}" + + cat >list </dev/null; then + nohup ./serv00sb run -c ./config.json >/dev/null 2>&1 & + fi +elif [[ "$type" =~ ^(1|3|1.1|3.1|4.4|2.4)$ ]]; then + chmod +x ./serv00sb + if ! ps aux | grep serv00sb | grep -v "grep" >/dev/null; then + nohup ./serv00sb run -c ./config.json >/dev/null 2>&1 & + fi +fi + +if [ -z "$keep" ]; then + export_list +fi +exit 0 diff --git a/ssl/cronSSL.sh b/ssl/cronSSL.sh index 0c32cb2c..f3e5f24f 100644 --- a/ssl/cronSSL.sh +++ b/ssl/cronSSL.sh @@ -1,28 +1,28 @@ -#!/bin/bash - -installpath="$HOME" -domain=$1 -host="$(hostname | cut -d '.' -f 1)" -user=$(whoami) -sno=${host/s/web} -webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') -resp=$(devil ssl www add $webIp le le $domain) - -cd ${installpath}/serv00-play/ssl - -if [[ "$resp" =~ .*succesfully.*$ ]]; then - crontab -l | grep -v "$domain" >tmpcron - crontab tmpcron - rm -rf tmpcron - config="../config.json" - if [ -e "$config" ]; then - TELEGRAM_TOKEN=$(jq -r ".telegram_token" "$config") - TELEGRAM_USERID=$(jq -r ".telegram_userid" "$config") - if [[ -n "$TELEGRAM_TOKEN" && -n "$TELEGRAM_USERID" ]]; then - msg="Host:$host, user:$user, 你的域名($domain)申请的SSL证书已下发,请查收!" - cd $installpath/serv00-play - export TELEGRAM_TOKEN="$TELEGRAM_TOKEN" TELEGRAM_USERID="$TELEGRAM_USERID" - ./tgsend.sh "$msg" - fi - fi -fi +#!/bin/bash + +installpath="$HOME" +domain=$1 +host="$(hostname | cut -d '.' -f 1)" +user=$(whoami) +sno=${host/s/web} +webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') +resp=$(devil ssl www add $webIp le le $domain) + +cd ${installpath}/serv00-play/ssl + +if [[ "$resp" =~ .*succesfully.*$ ]]; then + crontab -l | grep -v "$domain" >tmpcron + crontab tmpcron + rm -rf tmpcron + config="../config.json" + if [ -e "$config" ]; then + TELEGRAM_TOKEN=$(jq -r ".telegram_token" "$config") + TELEGRAM_USERID=$(jq -r ".telegram_userid" "$config") + if [[ -n "$TELEGRAM_TOKEN" && -n "$TELEGRAM_USERID" ]]; then + msg="Host:$host, user:$user, 你的域名($domain)申请的SSL证书已下发,请查收!" + cd $installpath/serv00-play + export TELEGRAM_TOKEN="$TELEGRAM_TOKEN" TELEGRAM_USERID="$TELEGRAM_USERID" + ./tgsend.sh "$msg" + fi + fi +fi From 3e39a1d51cab09ea532d1af08a15b6bba5c4f641 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 2 Jan 2025 19:47:25 +0800 Subject: [PATCH 025/210] LOGININFO --- .github/workflows/deploy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index fff92b15..2ba9de0a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -29,6 +29,7 @@ jobs: SENDTYPE: ${{secrets.SENDTYPE}} BUTTON_URL: ${{secrets.BUTTON_URL}} AUTOUPDATE: ${{vars.AUTOUPDATE}} + LOGININFO: ${{vars.LOGININFO}} run: | chmod +x ./revive.sh ./revive.sh From 833262c007eda3c935ceefcf5b053987740f48ec Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 2 Jan 2025 22:35:50 +0800 Subject: [PATCH 026/210] fixed --- revive.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/revive.sh b/revive.sh index c9300bbf..6a71930a 100644 --- a/revive.sh +++ b/revive.sh @@ -5,7 +5,6 @@ SENDTYPE=${SENDTYPE:-null} TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} TELEGRAM_USERID=${TELEGRAM_USERID:-null} WXSENDKEY=${WXSENDKEY:-null} -BUTTON_URL=${BUTTON_URL:-null} LOGININFO=${LOGININFO:-N} export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL From 56fe372e24ca717efab381bd9d0f307297508ccf Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 3 Jan 2025 01:13:37 +0800 Subject: [PATCH 027/210] =?UTF-8?q?=E6=9C=80=E6=96=B0=E6=95=99=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ef63878d..7b007340 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st ## 安装说明视频 -安装使用说明可以看[这里](https://youtu.be/bpYV8r85F-8) +安装使用说明可以看[这里](https://youtu.be/ZCr7YiQX8Qs) 临时隧道已失效,请使用固定隧道名,[如何申请固定隧道名](https://youtu.be/KyMvtWknu-k) argo+vmess 的搭建教学看[这里](https://youtu.be/nmb2F6uBKsg?si=v8twWIkIjsN8UYb-) From 7a2b5f1a3845481556500bf26052cdd9d49933c6 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 3 Jan 2025 23:22:53 +0800 Subject: [PATCH 028/210] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=97=A0=E6=B3=95=E5=8F=91=E9=80=81tg?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive.sh | 1 + tgsend.sh | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/revive.sh b/revive.sh index 6a71930a..c9300bbf 100644 --- a/revive.sh +++ b/revive.sh @@ -5,6 +5,7 @@ SENDTYPE=${SENDTYPE:-null} TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} TELEGRAM_USERID=${TELEGRAM_USERID:-null} WXSENDKEY=${WXSENDKEY:-null} +BUTTON_URL=${BUTTON_URL:-null} LOGININFO=${LOGININFO:-N} export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL diff --git a/tgsend.sh b/tgsend.sh index fba217a6..2c48785c 100644 --- a/tgsend.sh +++ b/tgsend.sh @@ -69,7 +69,12 @@ formatted_msg=$(echo "$result" | awk -F'|' '{print $1}') host=$(echo "$result" | awk -F'|' '{print $2}') user=$(echo "$result" | awk -F'|' '{print $3}') -button_url=${BUTTON_URL:-"https://www.youtube.com/@frankiejun8965"} +if [[ "$BUTTON_URL" == "null" ]]; then + button_url="https://www.youtube.com/@frankiejun8965" +else + button_url=${BUTTON_URL} +fi + URL="https://api.telegram.org/bot${telegramBotToken}/sendMessage" if [[ -n "$PASS" ]]; then From ab54d06dd5804d015576808b6c4ab6bca223fe67 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 5 Jan 2025 01:19:38 +0800 Subject: [PATCH 029/210] =?UTF-8?q?=E4=BF=AE=E6=94=B9msg.json=E5=86=99?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index 8e0b3089..01a6ac08 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -53,8 +53,9 @@ checkResetCron() { #构建消息配置文件 makeMsgConfig() { - echo "构造消息配置文件..." - cat >msg.json <msg.json < Date: Sun, 5 Jan 2025 21:11:16 +0800 Subject: [PATCH 030/210] tz button_url --- tgsend.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tgsend.sh b/tgsend.sh index 2c48785c..1453a09c 100644 --- a/tgsend.sh +++ b/tgsend.sh @@ -72,7 +72,7 @@ user=$(echo "$result" | awk -F'|' '{print $3}') if [[ "$BUTTON_URL" == "null" ]]; then button_url="https://www.youtube.com/@frankiejun8965" else - button_url=${BUTTON_URL} + button_url=${BUTTON_URL:-"https://www.youtube.com/@frankiejun8965"} fi URL="https://api.telegram.org/bot${telegramBotToken}/sendMessage" From fe6c0f462ef1eeb62b32813d8e72fc2ebe50f6f5 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 6 Jan 2025 14:34:50 +0800 Subject: [PATCH 031/210] . --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7b007340..8136b103 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ## 前置工作 1. 你需要有一个 serv00 帐号 -2. 首次运行,无需使用面板,选 1 安装 serv00-play 后,选 13 按回车,它会自动重新登录,输入 ss 回车进入界面。(以后都是输入 ss 回车进入界面) +2. 首次运行,无需使用面板,选 1 安装 serv00-play, 它会自动重新登录,输入 ss 回车进入界面。(以后都是输入 ss 回车进入界面) ## 安装说明 From eeb8ff14db5957c51cf387fba8f1d10f71637bd7 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 9 Jan 2025 12:49:57 +0800 Subject: [PATCH 032/210] . --- keepalive.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/keepalive.sh b/keepalive.sh index 01a6ac08..d23c7269 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -54,6 +54,9 @@ checkResetCron() { #构建消息配置文件 makeMsgConfig() { if [ -n "$TELEGRAM_TOKEN" ] || [ -n "$WXSENDKEY" ]; then + if [[ "$TELEGRAM_TOKEN" != "null" || "$WXSENDKEY" != "null" ]]; then + echo "构造消息配置文件..." + cat >msg.json <msg.json < Date: Fri, 10 Jan 2025 00:54:17 +0800 Subject: [PATCH 033/210] . --- keepalive.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index d23c7269..c0bceaf6 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -55,10 +55,7 @@ checkResetCron() { makeMsgConfig() { if [ -n "$TELEGRAM_TOKEN" ] || [ -n "$WXSENDKEY" ]; then if [[ "$TELEGRAM_TOKEN" != "null" || "$WXSENDKEY" != "null" ]]; then - echo "构造消息配置文件..." cat >msg.json <msg.json < Date: Sun, 12 Jan 2025 12:24:11 +0800 Subject: [PATCH 034/210] linkalive --- revive.sh | 7 ++++ start.sh | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- tgsend.sh | 0 utils.sh | 15 ++++++- 4 files changed, 139 insertions(+), 5 deletions(-) mode change 100644 => 100755 start.sh mode change 100644 => 100755 tgsend.sh diff --git a/revive.sh b/revive.sh index c9300bbf..72c68bd7 100644 --- a/revive.sh +++ b/revive.sh @@ -10,6 +10,13 @@ LOGININFO=${LOGININFO:-N} export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL # 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 +AUTOUPDATE=${AUTOUPDATE:-Y} +SENDTYPE=${SENDTYPE:-null} +TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} +TELEGRAM_USERID=${TELEGRAM_USERID:-null} +WXSENDKEY=${WXSENDKEY:-null} +BUTTON_URL=${BUTTON_URL:-null} + hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) summary="" for info in "${hosts_info[@]}"; do diff --git a/start.sh b/start.sh old mode 100644 new mode 100755 index f0c6a219..8ef50451 --- a/start.sh +++ b/start.sh @@ -2284,6 +2284,7 @@ sunPanelServ() { echo "2. 启动" echo "3. 停止" echo "4. 初始化密码" + echo "5. 导入serv00账号信息(频道会员尊享功能)" echo "8. 卸载" echo "9. 返回主菜单" echo "0. 退出脚本" @@ -2303,6 +2304,9 @@ sunPanelServ() { 4) resetSunPanelPwd ;; + 5) + import_accounts + ;; 8) uninstallSunPanel ;; @@ -2320,6 +2324,54 @@ sunPanelServ() { showMenu } +import_accounts() { + local workdir="${installpath}/serv00-play/sunpanel" + if ! vip_statement; then + return 1 + fi + + cd $workdir + read -p "请输入会员密码:" passwd + if ! checkDownload "importd_panel_accounts.sh" 0 "$passwd" 1; then + return 1 + fi + + chmod +x ./importd_panel_accounts.sh + + ./importd_panel_accounts.sh && rm -rf ./importd_panel_accounts.sh + + if [[ $? -ne 0 ]]; then + echo "导入失败!" + else + echo "导入成功!" + fi + +} + +import_accounts() { + local workdir="${installpath}/serv00-play/sunpanel" + if ! vip_statement; then + return 1 + fi + + cd $workdir + read -p "请输入会员密码:" passwd + if ! checkDownload "importd_panel_accounts.sh" 0 "$passwd" 1; then + return 1 + fi + + chmod +x ./importd_panel_accounts.sh + + ./importd_panel_accounts.sh && rm -rf ./importd_panel_accounts.sh + + if [[ $? -ne 0 ]]; then + echo "导入失败!" + else + echo "导入成功!" + fi + +} + uninstallSunPanel() { local workdir="${installpath}/serv00-play/sunpanel" uninstallProc "$workdir" "sun-panel" @@ -2576,7 +2628,7 @@ installBurnReading() { domainPath="$installpath/domains/$domain/public_html" cd $domainPath echo "正在下载并安装 OneTimeMessagePHP ..." - if ! download_from_github_release frankiejun OneTimeMessagePHP OneTimeMessagePHP; then + if ! download_from_github_release fkj-src OneTimeMessagePHP OneTimeMessagePHP; then red "下载失败!" return 1 fi @@ -2614,6 +2666,19 @@ uninstallBurnReading() { if ! check_domains_empty; then echo "目前已安装服务的域名有:" print_domains + read -p "是否删除所有域名服务? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" == "y" ]]; then + delete_all_domains + rm -rf "${installpath}/serv00-play/burnreading" + else + read -p "请输入要删除的服务的域名:" domain + delete_domain "$domain" + fi + else + echo "没有可卸载服务!" + echo "目前已安装服务的域名有:" + print_domains fi read -p "是否删除所有域名服务? [y/n] [n]:" input input=${input:-n} @@ -2848,6 +2913,57 @@ changeHy2IP() { } +linkAliveServ() { + workdir="${installpath}/serv00-play/linkalive" + if ! checkInstalled "serv00-play"; then + return 1 + fi + if ! vip_statement "linkAliveStatment"; then + return 1 + fi + + if [[ ! -e $workdir ]]; then + mkdir -p $workdir + fi + cd $workdir + + read -p "请输入会员密码:" passwd + #判断密码是否为空 + if [[ -z "$passwd" ]]; then + red "密码不能为空!" + return 1 + fi + if ! checkDownload "linkAlive.sh" $ISFILE "$passwd" $ISVIP; then + return 1 + fi + + chmod +x ./linkAlive.sh + ./linkAlive.sh "$passwd" && rm -rf ./linkAlive.sh + + showMenu +} + +linkAliveStatment() { + cat <" @@ -2857,7 +2973,7 @@ showMenu() { echo "<------------------------------------------------------------------>" echo "请选择一个选项:" - options=("安装/更新serv00-play项目" "sun-panel" "webssh" "阅后即焚" "待开发" "设置保活的项目" "配置sing-box" + options=("安装/更新serv00-play项目" "sun-panel" "webssh" "阅后即焚" "linkalive" "设置保活的项目" "配置sing-box" "运行sing-box" "停止sing-box" "显示sing-box节点信息" "快照恢复" "系统初始化" "前置工作及设置中国时区" "管理哪吒探针" "卸载探针" "设置彩色开机字样" "显示本机IP" "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "卸载") @@ -2876,7 +2992,7 @@ showMenu() { burnAfterReadingServ ;; 5) - nonServ + linkAliveServ ;; 6) setConfig diff --git a/tgsend.sh b/tgsend.sh old mode 100644 new mode 100755 diff --git a/utils.sh b/utils.sh index b1f4ef4a..efcaac24 100644 --- a/utils.sh +++ b/utils.sh @@ -348,10 +348,16 @@ cleanPort() { return 0 } +ISIDR=1 +ISFILE=0 +ISVIP=1 +NOTVIP=0 checkDownload() { local file=$1 - local filegz="$file.gz" local is_dir=${2:-0} + local passwd=${3:"fkjyyds666"} + local vipflag=${4:-0} + local filegz="$file.gz" if [[ $is_dir -eq 1 ]]; then filegz="$file.tar.gz" @@ -360,7 +366,12 @@ checkDownload() { #检查并下载核心程序 if [[ ! -e $file ]] || [[ $(file $file) == *"text"* ]]; then echo "正在下载 $file..." - url="https://gfg.fkj.pp.ua/app/serv00/$filegz?pwd=fkjyyds666" + if [[ $vipflag -eq 1 ]]; then + url="https://gfg.fkj.pp.ua/app/vip/$filegz?pwd=$passwd" + else + url="https://gfg.fkj.pp.ua/app/serv00/$filegz?pwd=$passwd" + fi + echo "url:$url" curl -L -sS --max-time 20 -o $filegz "$url" if file $filegz | grep -q "text"; then From f300b12de143777b64870306a5be6820b750e699 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 12 Jan 2025 12:24:42 +0800 Subject: [PATCH 035/210] linkalive --- revive.sh | 7 ------- 1 file changed, 7 deletions(-) diff --git a/revive.sh b/revive.sh index 72c68bd7..c9300bbf 100644 --- a/revive.sh +++ b/revive.sh @@ -10,13 +10,6 @@ LOGININFO=${LOGININFO:-N} export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL # 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 -AUTOUPDATE=${AUTOUPDATE:-Y} -SENDTYPE=${SENDTYPE:-null} -TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} -TELEGRAM_USERID=${TELEGRAM_USERID:-null} -WXSENDKEY=${WXSENDKEY:-null} -BUTTON_URL=${BUTTON_URL:-null} - hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) summary="" for info in "${hosts_info[@]}"; do From 2e08089253de90b21a3a6db7f2bf9238dcf7a7b5 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 12 Jan 2025 13:44:57 +0800 Subject: [PATCH 036/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=AB=AF=E5=8F=A3?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/start.sh b/start.sh index 8ef50451..940be44b 100755 --- a/start.sh +++ b/start.sh @@ -1866,15 +1866,15 @@ delPortMenu() { if [[ ${#indexPorts[@]} -gt 0 ]]; then printIndexPorts - read -p "请选择要删除的端口记录编号(输入0删除所有端口记录, 回车返回):" number + read -p "请选择要删除的端口记录编号(输入-1删除所有端口记录, 回车返回):" number number=${number:-99} if [[ $number -eq 99 ]]; then return - elif [[ $number -gt 3 || $number -lt 0 ]]; then + elif [[ $number -gt 3 || $number -lt -1 || $number -eq 0 ]]; then echo "非法输入!" return - elif [[ $number -eq 0 ]]; then + elif [[ $number -eq -1 ]]; then cleanPort else idx=$((number - 1)) From 4fb72f845c06de18062f59a2a98c2b9a110e6cd1 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 12 Jan 2025 14:25:33 +0800 Subject: [PATCH 037/210] linkalive --- utils.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils.sh b/utils.sh index efcaac24..65b57bbf 100644 --- a/utils.sh +++ b/utils.sh @@ -371,7 +371,7 @@ checkDownload() { else url="https://gfg.fkj.pp.ua/app/serv00/$filegz?pwd=$passwd" fi - echo "url:$url" + #echo "url:$url" curl -L -sS --max-time 20 -o $filegz "$url" if file $filegz | grep -q "text"; then From 294766399be9051ab6852a362ff89ee236cc05cd Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 12 Jan 2025 14:47:34 +0800 Subject: [PATCH 038/210] =?UTF-8?q?fixed:sb=E4=B8=8B=E8=BD=BD=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils.sh b/utils.sh index 65b57bbf..0980985a 100644 --- a/utils.sh +++ b/utils.sh @@ -355,7 +355,7 @@ NOTVIP=0 checkDownload() { local file=$1 local is_dir=${2:-0} - local passwd=${3:"fkjyyds666"} + local passwd=${3:-"fkjyyds666"} local vipflag=${4:-0} local filegz="$file.gz" From e8cfa19f4053d43cdc28a3e330f4701a9f176598 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 12 Jan 2025 14:52:22 +0800 Subject: [PATCH 039/210] . --- singbox/start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/singbox/start.sh b/singbox/start.sh index b2bfa1be..314819f3 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -51,7 +51,7 @@ export_list() { fi vmessname="Argo-vmess-$host-$user" hy2name="Hy2-$host-$user" - VMESSWS="{\"v\":\"2\",\"ps\": \"Vmessws-${host}-${user}\", \"add\":\"www.visa.com.hk\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" + VMESSWS="{\"v\":\"2\",\"ps\": \"Vmessws-${host}-${user}\", \"add\":\"$GOOD_DOMAIN\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" ARGOVMESS="{ \"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\" }" hysteria2="hysteria2://$UUID@$myip:$HY2PORT/?sni=www.bing.com&alpn=h3&insecure=1#$hy2name" socks5="https://t.me/socks?server=${host}.serv00.com&port=${SOCKS5_PORT}&user=${SOCKS5_USER}&pass=${SOCKS5_PASS}" From 65d55060ae61b810cf1ea39ba7264e5ce2103ac2 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 13 Jan 2025 16:44:31 +0800 Subject: [PATCH 040/210] start.sh --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 940be44b..6748348e 100755 --- a/start.sh +++ b/start.sh @@ -2952,7 +2952,7 @@ EOF vip_statement() { statement=$1 - echo "此功能为会员尊享功能,欢迎加入饭奇骏频道会员: https://www.youtube.com/@frankiejun8965/membership " + echo "此功能为会员尊享功能,欢迎加入饭奇骏频道会员: https://www.youtube.com/channel/UCjS3UKSmQ2mvsThXhJIFobA/join " $statement read -p "你是否会员? [y/n] [n]:" input input=${input:-n} From cc967d12f4b6dd3132d96c6db66a48ff25eda72c Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 14 Jan 2025 20:23:39 +0800 Subject: [PATCH 041/210] --- keepalive.sh | 5 ++++- start.sh | 30 ++++++++++++++---------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index c0bceaf6..95f448f2 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -42,10 +42,13 @@ checkResetCron() { echo "run checkResetCron" local msg="" cd ${installpath}/serv00-play/ + tm=$(jq -r ".chktime" config.json) + if [ "$tm" == "null" ]; then + return + fi crontab -l | grep keepalive if ! crontab -l | grep keepalive; then msg="crontab记录被删过,并且已重建。" - tm=$(jq -r ".chktime" config.json) addCron "$tm" sendMsg $msg fi diff --git a/start.sh b/start.sh index 6748348e..8dda71c9 100755 --- a/start.sh +++ b/start.sh @@ -93,7 +93,7 @@ showSingBoxInfo() { } chooseSingbox() { - echo "保活sing-box中哪个项目: " + echo "保活sing-box中哪个项目(单选): " echo " 1.hy2/vmess+ws/socks5 " echo " 2.argo+vmess " echo " 3.all " @@ -215,20 +215,6 @@ createConfigFile() { json_content="${json_content%,}\n" json_content+=" ],\n" - if [ "$num" = "4" ]; then - json_content+=" \"chktime\": \"null\"" - json_content+="}\n" - printf "$json_content" >./config.json - echo -e "${YELLOW} 设置完成! ${RESET} " - delCron - return - fi - - read -p "配置保活检查的时间间隔(单位分钟,默认5分钟):" tm - tm=${tm:-"5"} - - json_content+=" \"chktime\": \"$tm\"," - read -p "是否需要配置消息推送? [y/n] [n]:" input input=${input:-n} @@ -256,12 +242,24 @@ createConfigFile() { else sendtype=${sendtype:-"null"} fi + + read -p "是否使用cron保活? [y/n] [n]:" setcron + setcron=${setcron:-n} + + if [[ "$setcron" == "y" ]]; then + read -p "配置保活检查的时间间隔(单位分钟[1~59],默认5分钟):" tm + tm=${tm:-"5"} + json_content+=" \"chktime\": \"$tm\"," + fi json_content+="\n \"sendtype\": $sendtype \n" json_content+="}\n" # 使用 printf 生成文件 printf "$json_content" >./config.json - addCron $tm + if [[ "$setcron" == "y" ]]; then + addCron $tm + fi + chmod +x ${installpath}/serv00-play/keepalive.sh echo -e "${YELLOW} 设置完成! ${RESET} " From aa2284f2889343a5092cfd61625bbee78360ecf5 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 14 Jan 2025 22:06:35 +0800 Subject: [PATCH 042/210] =?UTF-8?q?link=E8=AE=BF=E9=97=AE=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E5=8F=91=E9=80=81tg=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tgsend.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tgsend.sh b/tgsend.sh index 1453a09c..916c338d 100755 --- a/tgsend.sh +++ b/tgsend.sh @@ -77,10 +77,14 @@ fi URL="https://api.telegram.org/bot${telegramBotToken}/sendMessage" -if [[ -n "$PASS" ]]; then - pass=$(toBase64 $PASS) +if [[ -n "$host" ]]; then button_url=$(replaceValue $button_url HOST $host) +fi +if [[ -n "$user" ]]; then button_url=$(replaceValue $button_url USER $user) +fi +if [[ -n "$PASS" ]]; then + pass=$(toBase64 $PASS) button_url=$(replaceValue $button_url PASS $pass) fi encoded_url=$(urlencode "$button_url") From 7edd3d0c7d41a448d4328727400c386d0ceebfbd Mon Sep 17 00:00:00 2001 From: fgr178707 <109357981+fgr178707@users.noreply.github.com> Date: Fri, 17 Jan 2025 07:52:08 +0800 Subject: [PATCH 043/210] Update keepalive.sh --- keepalive.sh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index 95f448f2..ee9da46c 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -264,9 +264,9 @@ for obj in "${monitor[@]}"; do startSunPanel sleep 3 if ! checkProcAlive "sun-panel"; then - msg="sun-panel restarted failure." + msg="sun-panel 重启失败." else - msg="sun-panel restarted successfully." + msg="sun-panel 重启成功." fi fi elif [ "$obj" == "webssh" ]; then @@ -274,9 +274,9 @@ for obj in "${monitor[@]}"; do startWebSSH sleep 5 if ! checkProcAlive "wssh"; then - msg="webssh restarted failure." + msg="webssh 重启失败." else - msg="webssh restarted successfully." + msg="webssh 重启成功." fi fi elif [ "$obj" == "vmess" ]; then @@ -285,9 +285,9 @@ for obj in "${monitor[@]}"; do chmod +x ./start.sh && ./start.sh 1 keep sleep 5 if ! checkvmessAlive; then - msg="vmess restarted failure." + msg="vmess 重启失败." else - msg="vmess restarted successfully." + msg="vmess 重启成功." fi fi #hy2和vmess+ws都只需要启动serv00sb,所以可以这么写 @@ -298,9 +298,9 @@ for obj in "${monitor[@]}"; do chmod +x ./start.sh && ./start.sh 2 keep sleep 5 if ! checkHy2Alive; then - msg="hy2 restarted failure." + msg="hy2 重启失败." else - msg="hy2 restarted successfully." + msg="hy2 重启成功." fi fi elif [ "$obj" == "nezha-agent" ]; then @@ -309,9 +309,9 @@ for obj in "${monitor[@]}"; do startNeZhaAgent sleep 5 if ! checknezhaAgentAlive; then - msg="nezha-agent restarted failure." + msg="nezha-agent 重启失败." else - msg="nezha-agent restarted successfully." + msg="nezha-agent 重启成功." fi fi elif [ "$obj" == "mtg" ]; then @@ -320,9 +320,9 @@ for obj in "${monitor[@]}"; do startMtg sleep 5 if ! checkMtgAlive; then - msg="mtproto restarted failure." + msg="mtproto 重启失败." else - msg="mtproto restarted successfully." + msg="mtproto 重启成功." fi fi elif [ "$obj" == "alist" ]; then @@ -330,9 +330,9 @@ for obj in "${monitor[@]}"; do startAlist sleep 5 if ! checkProcAlive "alist"; then - msg="alist restarted failure." + msg="alist 重启失败." else - msg="alist restarted successfully." + msg="alist 重启成功." fi fi elif [ "$obj" == "wssh" ]; then @@ -340,9 +340,9 @@ for obj in "${monitor[@]}"; do startAlist sleep 5 if ! checkAlistAlive; then - msg="alist restarted failure." + msg="alist 重启失败." else - msg="alist restarted successfully." + msg="alist 重启成功." fi fi else From 9b9cbb06502fc1423c9ef85399f2b8e3f3e5b6e3 Mon Sep 17 00:00:00 2001 From: fgr178707 <109357981+fgr178707@users.noreply.github.com> Date: Fri, 17 Jan 2025 08:02:17 +0800 Subject: [PATCH 044/210] Update keepalive.sh --- keepalive.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index ee9da46c..0ac7443b 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -340,9 +340,9 @@ for obj in "${monitor[@]}"; do startAlist sleep 5 if ! checkAlistAlive; then - msg="alist 重启失败." + msg="wssh 重启失败." else - msg="alist 重启成功." + msg="wssh 重启成功." fi fi else From 9414a89859a1e84f5dbc97bb0ac193c51da9b7af Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 28 Jan 2025 13:54:33 +0800 Subject: [PATCH 045/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E7=9A=84=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E9=94=AEhy2=E6=8D=A2ip=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E9=80=89=E6=8B=A9IP=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 97 ++++++++++++++++++++++++++++++++++++++++---------------- utils.sh | 39 +++++++++++++++++++++++ 2 files changed, 109 insertions(+), 27 deletions(-) diff --git a/start.sh b/start.sh index 8dda71c9..1fd0d8cd 100755 --- a/start.sh +++ b/start.sh @@ -1141,6 +1141,9 @@ InitServer() { rm -rf ~/* 2>/dev/null else rm -rf ~/* ~/.* 2>/dev/null + clean_all_domains + clean_all_dns + create_default_domain fi cleanPort yellow "初始化完毕" @@ -1904,12 +1907,29 @@ addPortMenu() { fi loadPort read -p "请输入端口备注(如hy2,vmess,用于脚本自动获取端口):" opts - local port=$(getPort $type $opts) - if [[ "$port" == "failed" ]]; then - red "分配端口失败,请重新操作!" + read -p "是否自动分配端口? [y/n] [y]:" input + input=${input:-y} + if [[ "$input" == "y" ]]; then + port=$(getPort $type $opts) + if [[ "$port" == "failed" ]]; then + red "分配端口失败,请重新操作!" + else + green "分配出来的端口是:$port" + fi else - green "分配出来的端口是:$port" + read -p "请输入端口号:" port + if [[ -z "$port" ]]; then + red "端口不能为空" + return 1 + fi + resp=$(devil port add $type $port $opts) + if [[ "$resp" =~ .*succesfully.*$ || "$resp" =~ .*Ok.*$ ]]; then + green "添加端口成功!" + else + red "添加端口失败!" + fi fi + } portServ() { @@ -2235,7 +2255,8 @@ rootServ() { showMenu } -getUnblockIP() { +showIPStatus() { + localIPs=() local hostname=$(hostname) local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') local hosts=("cache${host_number}.serv00.com" "web${host_number}.serv00.com" "$hostname") @@ -2244,7 +2265,9 @@ getUnblockIP() { green " 主机名称 | IP | 状态" yellow "----------------------------------------------" # 遍历主机名称数组 + local i=0 for host in "${hosts[@]}"; do + ((i++)) # 获取 API 返回的数据 local response=$(curl -s "https://ss.botai.us.kg/api/getip?host=$host") @@ -2255,7 +2278,8 @@ getUnblockIP() { fi local ip=$(echo "$response" | awk -F "|" '{print $1 }') local status=$(echo "$response" | awk -F "|" '{print $2 }') - printf "%-20s | %-15s | %-10s\n" "$host" "$ip" "$status" + localIPs+=("$ip") + printf "%-2d %-20s | %-15s | %-10s\n" $i "$host" "$ip" "$status" done } @@ -2879,35 +2903,54 @@ checkInstalled() { } changeHy2IP() { + cd ${installpath}/serv00-play/singbox + if [[ ! -e "singbox.json" || ! -e "config.json" ]]; then + red "未安装节点,请先安装!" + return 1 + fi + showIPStatus read -p "是否让程序为HY2选择可用的IP?[y/n] [y]:" input input=${input:-y} - if [[ "$input" == "y" ]]; then - cd ${installpath}/serv00-play/singbox - if [[ ! -e "singbox.json" || ! -e "config.json" ]]; then - red "未安装节点,请先安装!" + if [[ "$input" == "n" ]]; then + read -p "是否手动选择IP?[y/n] [y]:" choose + choose=${choose:-y} + if [[ "$choose" == "y" ]]; then + read -p "请选择你要的IP的序号:" num + if [[ -z "$num" ]]; then + red "选择不能为空!" + return 1 + fi + if [[ $num -lt 1 || $num -gt ${#localIPs[@]} ]]; then + echo "错误:num 的值非法!请输入 1 到 ${#localIPs[@]} 之间的整数。" + return 1 + fi + hy2_ip=${localIPs[$((num - 1))]} + else return 1 fi + else hy2_ip=$(get_ip) - if [[ -z "hy2_ip" ]]; then - red "很遗憾,已无可用IP!" - return 1 - fi - if ! upInsertFd singbox.json HY2IP "$hy2_ip"; then - red "更新singbox.json配置文件失败!" - return 1 - fi + fi - if ! upSingboxFd config.json "inbounds" "tag" "hysteria-in" "listen" "$hy2_ip"; then - red "更新config.json配置文件失败!" - return 1 - fi - green "HY2 更换IP成功,当前IP为 $hy2_ip" + if [[ -z "$hy2_ip" ]]; then + red "很遗憾,已无可用IP!" + return 1 + fi + if ! upInsertFd singbox.json HY2IP "$hy2_ip"; then + red "更新singbox.json配置文件失败!" + return 1 + fi - echo "正在重启sing-box..." - stopSingBox - startSingBox + if ! upSingboxFd config.json "inbounds" "tag" "hysteria-in" "listen" "$hy2_ip"; then + red "更新config.json配置文件失败!" + return 1 fi + green "HY2 更换IP成功,当前IP为 $hy2_ip" + + echo "正在重启sing-box..." + stopSingBox + startSingBox } @@ -3044,7 +3087,7 @@ showMenu() { rootServ ;; 23) - getUnblockIP + showIPStatus ;; 24) changeHy2IP diff --git a/utils.sh b/utils.sh index 0980985a..abf105b6 100644 --- a/utils.sh +++ b/utils.sh @@ -552,3 +552,42 @@ download_from_github_release() { echo "下载并解压 $zippackage 成功!" return 0 } + +clean_all_domains() { + echo "正在清理域名..." + output=$(devil www list) + if echo "$output" | grep -q "No elements to display"; then + echo "没有发现在用域名." + return 0 + fi + domains=($(echo "$output" | awk 'NF && NR>2 {print $1}')) + + for domain in "${domains[@]}"; do + devil www del $domain --remove + done + echo "域名清理完毕!" +} + +create_default_domain() { + echo "正在创建默认域名..." + user="$(whoami)" + local domain="${user}.serv00.net" + domain="${domain,,}" + devil www add $domain php + echo "默认域名创建成功!" +} + +clean_all_dns() { + echo "正在清理DNS..." + output=$(devil dns list) + if echo "$output" | grep -q "No elements to display"; then + echo "没有发现在用DNS." + return 0 + fi + domains=($(echo "$output" | awk 'NF && NR>2 {print $1}')) + + for domain in "${domains[@]}"; do + devil dns del $domain + done + echo "DNS清理完毕!" +} From 80e0cddf3a571b5e1d3ec1e4b73b024432177345 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 28 Jan 2025 14:01:51 +0800 Subject: [PATCH 046/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E7=9A=84=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E9=94=AEhy2=E6=8D=A2ip=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E9=80=89=E6=8B=A9IP=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils.sh b/utils.sh index abf105b6..94059c2a 100644 --- a/utils.sh +++ b/utils.sh @@ -269,7 +269,7 @@ getPort() { rt=$(devil port add $type random $opts) if [[ "$rt" =~ .*succesfully.*$ || "$rt" =~ .*Ok.*$ ]]; then loadPort - if [[ -n "$port_array["$key"]" ]]; then + if [[ -n "${port_array["$key"]}" ]]; then echo "${port_array["$key"]}" else echo "failed" From b1bafd582fa65970288c693cea59aa5397e3f712 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 29 Jan 2025 13:55:44 +0800 Subject: [PATCH 047/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/start.sh b/start.sh index 1fd0d8cd..9cd53946 100755 --- a/start.sh +++ b/start.sh @@ -3005,12 +3005,18 @@ vip_statement() { return 0 } +getVer() { + ver=$(git ls-remote --tags https://github.com/frankiejun/serv00-play.git | awk -F/ '{print $3}' | sort -V | tail -n 1) + echo $ver +} + showMenu() { art_wrod=$(figlet "serv00-play") echo "<------------------------------------------------------------------>" echo -e "${CYAN}${art_wrod}${RESET}" echo -e "${GREEN} 饭奇骏频道:https://www.youtube.com/@frankiejun8965 ${RESET}" echo -e "${GREEN} TG交流群:https://t.me/fanyousuiqun ${RESET}" + echo -e "${GREEN} 版本号:$(getVer) ${RESET}" echo "<------------------------------------------------------------------>" echo "请选择一个选项:" From c354ffd2b3555560ede21486cba1b4ecec499150 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 29 Jan 2025 14:11:29 +0800 Subject: [PATCH 048/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/start.sh b/start.sh index 9cd53946..09d66baf 100755 --- a/start.sh +++ b/start.sh @@ -3005,10 +3005,18 @@ vip_statement() { return 0 } -getVer() { +getLatestVer() { ver=$(git ls-remote --tags https://github.com/frankiejun/serv00-play.git | awk -F/ '{print $3}' | sort -V | tail -n 1) echo $ver } +getCurrentVer() { + ver=$(git describe --tags --abbrev=0 2>/dev/null) + if [ $? -ne 0 ]; then + echo null + else + echo $ver + fi +} showMenu() { art_wrod=$(figlet "serv00-play") @@ -3016,7 +3024,7 @@ showMenu() { echo -e "${CYAN}${art_wrod}${RESET}" echo -e "${GREEN} 饭奇骏频道:https://www.youtube.com/@frankiejun8965 ${RESET}" echo -e "${GREEN} TG交流群:https://t.me/fanyousuiqun ${RESET}" - echo -e "${GREEN} 版本号:$(getVer) ${RESET}" + echo -e "${GREEN} 当前版本号:$(getCurrentVer) 最新版本号:$(getLatestVer) ${RESET}" echo "<------------------------------------------------------------------>" echo "请选择一个选项:" From 2d8ccb63d23d7661790d3d71ff9c1e2710865f80 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 30 Jan 2025 22:08:44 +0800 Subject: [PATCH 049/210] . --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 09d66baf..f8cacc13 100755 --- a/start.sh +++ b/start.sh @@ -945,7 +945,7 @@ startSingBox() { red "sing-box启动失败!" exit 1 fi - sleep 1 + sleep 5 if checkProcAlive "serv00sb"; then yellow "启动成功!" else From 564c10c9eb81d3d81c6c86e052dcef1cf2f7b764 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 30 Jan 2025 23:56:00 +0800 Subject: [PATCH 050/210] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- singbox/killsing-box.sh | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/singbox/killsing-box.sh b/singbox/killsing-box.sh index 77cc29e6..c530b4c8 100644 --- a/singbox/killsing-box.sh +++ b/singbox/killsing-box.sh @@ -1,18 +1,19 @@ #!/bin/bash -r=$(ps aux | grep cloudflare | grep -v grep | awk '{print $2}') -if [ -z "$r" ]; then - echo "can't find cloudflare" >/dev/null -else - echo $r - kill -9 $r -fi +# 定义需要检查和终止的进程名 +processes=("cloudflare" "serv00sb") -r=$(ps aux | grep serv00sb | grep -v grep | awk '{print $2}') +for process in "${processes[@]}"; do + # 查找进程 ID + pids=$(ps aux | grep "$process" | grep -v grep | awk '{print $2}') -if [ -z "$r" ]; then - echo "can't find serv00sb" >/dev/null -else - echo $r - kill -9 $r -fi + if [ -z "$pids" ]; then + echo "No process found: $process" + else + echo "Killing process: $process (PIDs: $pids)" + # 逐个杀死进程 + for pid in $pids; do + kill -9 "$pid" + done + fi +done From e1734622b804b8f9b1860101d1fbb13bcbda4921 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 31 Jan 2025 13:39:27 +0800 Subject: [PATCH 051/210] =?UTF-8?q?=E9=80=82=E9=85=8Dlinkalive?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/start.sh b/start.sh index f8cacc13..9a8b9be5 100755 --- a/start.sh +++ b/start.sh @@ -945,7 +945,7 @@ startSingBox() { red "sing-box启动失败!" exit 1 fi - sleep 5 + sleep 2 if checkProcAlive "serv00sb"; then yellow "启动成功!" else @@ -2979,9 +2979,9 @@ linkAliveServ() { fi chmod +x ./linkAlive.sh - ./linkAlive.sh "$passwd" && rm -rf ./linkAlive.sh + ./linkAlive.sh "$passwd" - showMenu + #showMenu } linkAliveStatment() { From 8b4ec9e81602826837cce36c24d1805ce7b08077 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 3 Feb 2025 23:53:57 +0800 Subject: [PATCH 052/210] . --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 9a8b9be5..87936115 100755 --- a/start.sh +++ b/start.sh @@ -2968,7 +2968,7 @@ linkAliveServ() { fi cd $workdir - read -p "请输入会员密码:" passwd + read -s -p "请输入会员密码:" passwd #判断密码是否为空 if [[ -z "$passwd" ]]; then red "密码不能为空!" From df0d6cd2a8207ea74732e1c06e0e27d805833988 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 3 Feb 2025 23:54:30 +0800 Subject: [PATCH 053/210] . --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 87936115..2c6c8663 100755 --- a/start.sh +++ b/start.sh @@ -2377,7 +2377,7 @@ import_accounts() { fi cd $workdir - read -p "请输入会员密码:" passwd + read -s -p "请输入会员密码:" passwd if ! checkDownload "importd_panel_accounts.sh" 0 "$passwd" 1; then return 1 fi From b68398c422faa307d64676039afc8324cd7c8122 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 7 Feb 2025 23:34:29 +0800 Subject: [PATCH 054/210] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=8D=A2hy2=20IP?= =?UTF-8?q?=E7=9A=84=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- singbox/autoUpdateHyIP.sh | 34 +++++++++++++++++ singbox/killsing-box.sh | 6 +-- start.sh | 70 ++--------------------------------- utils.sh | 77 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 114 insertions(+), 73 deletions(-) create mode 100644 singbox/autoUpdateHyIP.sh diff --git a/singbox/autoUpdateHyIP.sh b/singbox/autoUpdateHyIP.sh new file mode 100644 index 00000000..08e66173 --- /dev/null +++ b/singbox/autoUpdateHyIP.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +installpath="$HOME" +USER="$(whoami)" +if [[ -e "$installpath/serv00-play" ]]; then + source ${installpath}/serv00-play/utils.sh +fi + +cd ${installpath}/serv00-play/singbox +if [[ ! -e "singbox.json" || ! -e "config.json" ]]; then + red "未安装节点,请先安装!" + return 1 +fi + +hy2_ip=$(get_ip) + +if [[ -z "$hy2_ip" ]]; then + red "很遗憾,已无可用IP!" + return 1 +fi +if ! upInsertFd singbox.json HY2IP "$hy2_ip"; then + red "更新singbox.json配置文件失败!" + return 1 +fi + +if ! upSingboxFd config.json "inbounds" "tag" "hysteria-in" "listen" "$hy2_ip"; then + red "更新config.json配置文件失败!" + return 1 +fi +green "HY2 更换IP成功,当前IP为 $hy2_ip" + +echo "正在重启sing-box..." +stop_sing_box +start_sing_box diff --git a/singbox/killsing-box.sh b/singbox/killsing-box.sh index c530b4c8..d02b9af7 100644 --- a/singbox/killsing-box.sh +++ b/singbox/killsing-box.sh @@ -5,11 +5,9 @@ processes=("cloudflare" "serv00sb") for process in "${processes[@]}"; do # 查找进程 ID - pids=$(ps aux | grep "$process" | grep -v grep | awk '{print $2}') + pids=$(pgrep "$process") - if [ -z "$pids" ]; then - echo "No process found: $process" - else + if [ -n "$pids" ]; then echo "Killing process: $process (PIDs: $pids)" # 逐个杀死进程 for pid in $pids; do diff --git a/start.sh b/start.sh index 2c6c8663..0c88085f 100755 --- a/start.sh +++ b/start.sh @@ -915,55 +915,12 @@ EOF } startSingBox() { - cd ${installpath}/serv00-play/singbox - - if [[ ! -e "singbox.json" ]]; then - red "请先进行配置!" - return 1 - fi - - # if [[ ! -e ${installpath}/serv00-play/singbox/serv00sb ]] || [[ ! -e ${installpath}/serv00-play/singbox/cloudflared ]]; then - # read -p "请输入使用密码:" password - # fi - - if ! checkDownload "serv00sb"; then - return - fi - if ! checkDownload "cloudflared"; then - return - fi - - if checkSingboxAlive; then - red "sing-box 已在运行,请勿重复操作!" - return 1 - else #启动可能需要cloudflare,此处表示cloudflare和sb有一个不在线,所以干脆先杀掉再重启。 - chmod 755 ./killsing-box.sh - ./killsing-box.sh - fi - - if chmod +x start.sh && ! ./start.sh; then - red "sing-box启动失败!" - exit 1 - fi - sleep 2 - if checkProcAlive "serv00sb"; then - yellow "启动成功!" - else - red "启动失败!" - fi + start_sing_box } stopSingBox() { - cd ${installpath}/serv00-play/singbox - if [ -f killsing-box.sh ]; then - chmod 755 ./killsing-box.sh - ./killsing-box.sh - else - echo "请先安装serv00-play!!!" - return - fi - echo "已停掉sing-box!" + stop_sing_box } killUserProc() { @@ -2256,32 +2213,11 @@ rootServ() { } showIPStatus() { - localIPs=() - local hostname=$(hostname) - local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') - local hosts=("cache${host_number}.serv00.com" "web${host_number}.serv00.com" "$hostname") - yellow "----------------------------------------------" green " 主机名称 | IP | 状态" yellow "----------------------------------------------" - # 遍历主机名称数组 - local i=0 - for host in "${hosts[@]}"; do - ((i++)) - # 获取 API 返回的数据 - local response=$(curl -s "https://ss.botai.us.kg/api/getip?host=$host") - - # 检查返回的结果是否包含 "not found" - if [[ "$response" =~ "not found" ]]; then - echo "未识别主机${host}, 请联系作者饭奇骏!" - return - fi - local ip=$(echo "$response" | awk -F "|" '{print $1 }') - local status=$(echo "$response" | awk -F "|" '{print $2 }') - localIPs+=("$ip") - printf "%-2d %-20s | %-15s | %-10s\n" $i "$host" "$ip" "$status" - done + show_ip_status } checkProcStatus() { diff --git a/utils.sh b/utils.sh index 94059c2a..dcc58d44 100644 --- a/utils.sh +++ b/utils.sh @@ -187,7 +187,7 @@ get_webip() { # 遍历主机名称数组 for host in "${hosts[@]}"; do # 获取 API 返回的数据 - local response=$(curl -s "https://ss.botai.us.kg/api/getip?host=$host") + local response=$(curl -s "https://ss.serv0.us.kg/api/getip?host=$host") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then @@ -227,7 +227,7 @@ get_ip() { # 遍历主机名称数组 for host in "${hosts[@]}"; do # 获取 API 返回的数据 - local response=$(curl -s "https://ss.botai.us.kg/api/getip?host=$host") + local response=$(curl -s "https://ss.serv0.us.kg/api/getip?host=$host") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then @@ -591,3 +591,76 @@ clean_all_dns() { done echo "DNS清理完毕!" } + +show_ip_status() { + localIPs=() + local hostname=$(hostname) + local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') + local hosts=("cache${host_number}.serv00.com" "web${host_number}.serv00.com" "$hostname") + + # 遍历主机名称数组 + local i=0 + for host in "${hosts[@]}"; do + ((i++)) + # 获取 API 返回的数据 + local response=$(curl -s "https://ss.serv0.us.kg/api/getip?host=$host") + + # 检查返回的结果是否包含 "not found" + if [[ "$response" =~ "not found" ]]; then + echo "未识别主机${host}, 请联系作者饭奇骏!" + return + fi + local ip=$(echo "$response" | awk -F "|" '{print $1 }') + local status=$(echo "$response" | awk -F "|" '{print $2 }') + localIPs+=("$ip") + printf "%-2d %-20s | %-15s | %-10s\n" $i "$host" "$ip" "$status" + done +} + +stop_sing_box() { + cd ${installpath}/serv00-play/singbox + if [ -f killsing-box.sh ]; then + chmod 755 ./killsing-box.sh + ./killsing-box.sh + else + echo "请先安装serv00-play!!!" + return + fi + echo "已停掉sing-box!" +} + +start_sing_box() { + cd ${installpath}/serv00-play/singbox + + if [[ ! -e "singbox.json" ]]; then + red "请先进行配置!" + return 1 + fi + + if ! checkDownload "serv00sb"; then + return + fi + if ! checkDownload "cloudflared"; then + return + fi + + if checkSingboxAlive; then + red "sing-box 已在运行,请勿重复操作!" + return 1 + else #启动可能需要cloudflare,此处表示cloudflare和sb有一个不在线,所以干脆先杀掉再重启。 + chmod 755 ./killsing-box.sh + ./killsing-box.sh + fi + + if chmod +x start.sh && ! ./start.sh; then + red "sing-box启动失败!" + exit 1 + fi + sleep 2 + if checkProcAlive "serv00sb"; then + yellow "启动成功!" + else + red "启动失败!" + fi + +} From 4c306861fae08c7f763306557edb30d3380c493b Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 7 Feb 2025 23:43:38 +0800 Subject: [PATCH 055/210] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=8D=A2hy2=20IP?= =?UTF-8?q?=E7=9A=84=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 0c88085f..e81ba543 100755 --- a/start.sh +++ b/start.sh @@ -29,7 +29,7 @@ install() { if [ -d serv00-play ]; then cd "serv00-play" git stash - if git pull; then + if git pull origin main; then echo "更新完毕" #重新给各个脚本赋权限 chmod +x ./start.sh @@ -38,6 +38,7 @@ install() { chmod +x ./wxsend.sh chmod +x ${installpath}/serv00-play/singbox/start.sh chmod +x ${installpath}/serv00-play/singbox/killsing-box.sh + chmod +x ${installpath}/serv00-play/singbox/autoUpdateHyIP.sh chmod +x ${installpath}/serv00-play/ssl/cronSSL.sh red "请重新启动脚本!" exit 0 @@ -66,6 +67,7 @@ install() { chmod +x ./wxsend.sh chmod +x ${installpath}/serv00-play/singbox/start.sh chmod +x ${installpath}/serv00-play/singbox/killsing-box.sh + chmod +x ${installpath}/serv00-play/singbox/autoUpdateHyIP.sh chmod +x ${installpath}/serv00-play/ssl/cronSSL.sh read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input input=${input:-y} From 8d02b117af437751c5c8b7d20af1ca4e64ecc519 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 8 Feb 2025 00:17:03 +0800 Subject: [PATCH 056/210] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=8D=A2hy2=20IP?= =?UTF-8?q?=E7=9A=84=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- singbox/autoUpdateHyIP.sh | 14 ++++++++++++++ utils.sh | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/singbox/autoUpdateHyIP.sh b/singbox/autoUpdateHyIP.sh index 08e66173..9700545e 100644 --- a/singbox/autoUpdateHyIP.sh +++ b/singbox/autoUpdateHyIP.sh @@ -11,13 +11,27 @@ if [[ ! -e "singbox.json" || ! -e "config.json" ]]; then red "未安装节点,请先安装!" return 1 fi +config="singbox.json" +cur_hy2_ip=$(jq -r ".HY2IP" $config) +# 检查 cur_hy2_ip 是否为空 +if [[ -z "$cur_hy2_ip" ]]; then + red "当前 HY2IP 为空,未安装hy2节点!" + return 1 +fi + +show_ip_status +if printf '%s\n' "${useIPs[@]}" | grep -q "$cur_hy2_ip"; then + echo "目前ip可用" + return 0 +fi hy2_ip=$(get_ip) if [[ -z "$hy2_ip" ]]; then red "很遗憾,已无可用IP!" return 1 fi + if ! upInsertFd singbox.json HY2IP "$hy2_ip"; then red "更新singbox.json配置文件失败!" return 1 diff --git a/utils.sh b/utils.sh index dcc58d44..cb2c0fe5 100644 --- a/utils.sh +++ b/utils.sh @@ -594,6 +594,7 @@ clean_all_dns() { show_ip_status() { localIPs=() + useIPs=() local hostname=$(hostname) local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') local hosts=("cache${host_number}.serv00.com" "web${host_number}.serv00.com" "$hostname") @@ -613,6 +614,9 @@ show_ip_status() { local ip=$(echo "$response" | awk -F "|" '{print $1 }') local status=$(echo "$response" | awk -F "|" '{print $2 }') localIPs+=("$ip") + if [[ "$status" == "Accessible" ]]; then + useIPs+=("$ip") + fi printf "%-2d %-20s | %-15s | %-10s\n" $i "$host" "$ip" "$status" done } From c6523d4249e917708a3e9139bf17e0d1eb0d1079 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 8 Feb 2025 00:18:48 +0800 Subject: [PATCH 057/210] git update --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index e81ba543..00699037 100755 --- a/start.sh +++ b/start.sh @@ -26,7 +26,7 @@ fi PS3="请选择(输入0退出): " install() { cd ${installpath} - if [ -d serv00-play ]; then + if [ -d "serv00-play" ]; then cd "serv00-play" git stash if git pull origin main; then From d32da419d8c9c9c65bf2ae073271e766005a2365 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 8 Feb 2025 00:21:28 +0800 Subject: [PATCH 058/210] . --- singbox/autoUpdateHyIP.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/singbox/autoUpdateHyIP.sh b/singbox/autoUpdateHyIP.sh index 9700545e..3b28991a 100644 --- a/singbox/autoUpdateHyIP.sh +++ b/singbox/autoUpdateHyIP.sh @@ -9,37 +9,37 @@ fi cd ${installpath}/serv00-play/singbox if [[ ! -e "singbox.json" || ! -e "config.json" ]]; then red "未安装节点,请先安装!" - return 1 + exit fi config="singbox.json" cur_hy2_ip=$(jq -r ".HY2IP" $config) # 检查 cur_hy2_ip 是否为空 if [[ -z "$cur_hy2_ip" ]]; then red "当前 HY2IP 为空,未安装hy2节点!" - return 1 + exit fi show_ip_status if printf '%s\n' "${useIPs[@]}" | grep -q "$cur_hy2_ip"; then echo "目前ip可用" - return 0 + exit fi hy2_ip=$(get_ip) if [[ -z "$hy2_ip" ]]; then red "很遗憾,已无可用IP!" - return 1 + exit fi if ! upInsertFd singbox.json HY2IP "$hy2_ip"; then red "更新singbox.json配置文件失败!" - return 1 + exit fi if ! upSingboxFd config.json "inbounds" "tag" "hysteria-in" "listen" "$hy2_ip"; then red "更新config.json配置文件失败!" - return 1 + exit fi green "HY2 更换IP成功,当前IP为 $hy2_ip" From dcd258df7d79eba842034ab339280c69b34c1b36 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 9 Feb 2025 21:22:16 +0800 Subject: [PATCH 059/210] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=8D=A2hy2=20IP=E7=9A=84=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 29 +++++++++++++++++++---------- singbox/autoUpdateHyIP.sh | 8 +++++++- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index 0ac7443b..94496879 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -10,6 +10,7 @@ TELEGRAM_USERID="$4" WXSENDKEY="$5" BUTTON_URL="$6" PASS="$7" +autoUpdateHyIP="$8" #echo "TELEGRAM_TOKEN=$TELEGRAM_TOKEN, TELEGRAM_USERID=$TELEGRAM_USERID,WXSENDKEY=$WXSENDKEY,BUTTON_URL=$BUTTON_URL,pass=$PASS" @@ -129,7 +130,7 @@ startMtg() { port=$(jq -r ".port" $config) cmd="nohup ./mtg simple-run -n 1.1.1.1 -t 30s -a 1MB 0.0.0.0:$port $secret -c 8192 --prefer-ip=\"prefer-ipv6\" >/dev/null 2>&1 &" eval "$cmd" - sleep 3 + sleep 1 if checkMtgAlive; then echo "启动成功" else @@ -150,7 +151,7 @@ startAlist() { echo "alist已启动,请勿重复启动!" else nohup ./alist server >/dev/null 2>&1 & - sleep 3 + sleep 2 if ! checkProcAlive "alist"; then red "启动失败,请检查!" return 1 @@ -262,7 +263,7 @@ for obj in "${monitor[@]}"; do if [ "$obj" == "sun-panel" ]; then if ! checkProcAlive "sun-panel"; then startSunPanel - sleep 3 + sleep 2 if ! checkProcAlive "sun-panel"; then msg="sun-panel 重启失败." else @@ -272,7 +273,7 @@ for obj in "${monitor[@]}"; do elif [ "$obj" == "webssh" ]; then if ! checkProcAlive "wssh"; then startWebSSH - sleep 5 + sleep 2 if ! checkProcAlive "wssh"; then msg="webssh 重启失败." else @@ -283,7 +284,7 @@ for obj in "${monitor[@]}"; do if ! checkvmessAlive; then cd ${installpath}/serv00-play/singbox chmod +x ./start.sh && ./start.sh 1 keep - sleep 5 + sleep 1 if ! checkvmessAlive; then msg="vmess 重启失败." else @@ -296,7 +297,7 @@ for obj in "${monitor[@]}"; do #echo "重启serv00sb中..." cd ${installpath}/serv00-play/singbox chmod +x ./start.sh && ./start.sh 2 keep - sleep 5 + sleep 1 if ! checkHy2Alive; then msg="hy2 重启失败." else @@ -307,7 +308,7 @@ for obj in "${monitor[@]}"; do if ! checknezhaAgentAlive; then cd ${installpath}/serv00-play/nezha startNeZhaAgent - sleep 5 + sleep 1 if ! checknezhaAgentAlive; then msg="nezha-agent 重启失败." else @@ -318,7 +319,7 @@ for obj in "${monitor[@]}"; do if ! checkMtgAlive; then cd ${installpath}/serv00-play/dmtg startMtg - sleep 5 + sleep 1 if ! checkMtgAlive; then msg="mtproto 重启失败." else @@ -328,7 +329,7 @@ for obj in "${monitor[@]}"; do elif [ "$obj" == "alist" ]; then if ! checkProcAlive "alist"; then startAlist - sleep 5 + sleep 1 if ! checkProcAlive "alist"; then msg="alist 重启失败." else @@ -338,7 +339,7 @@ for obj in "${monitor[@]}"; do elif [ "$obj" == "wssh" ]; then if ! checkProcAlive wssh; then startAlist - sleep 5 + sleep 1 if ! checkAlistAlive; then msg="wssh 重启失败." else @@ -356,3 +357,11 @@ done if [ ${#monitor[@]} -gt 0 ]; then checkResetCron fi + +if [[ "$autoUpdateHyIP" == "Y" ]]; then + echo "正在自动更新HY2IP..." + cd ${installpath}/serv00-play/singbox + chmod +x ./autoUpdateHyIP.sh && ./autoUpdateHyIP.sh +fi + +devil info account &>/dev/null diff --git a/singbox/autoUpdateHyIP.sh b/singbox/autoUpdateHyIP.sh index 3b28991a..d517a079 100644 --- a/singbox/autoUpdateHyIP.sh +++ b/singbox/autoUpdateHyIP.sh @@ -25,7 +25,13 @@ if printf '%s\n' "${useIPs[@]}" | grep -q "$cur_hy2_ip"; then echo "目前ip可用" exit fi -hy2_ip=$(get_ip) + +if [[ ${#useIPs[@]} -eq 0 ]]; then + red "当前无可用IP!" + exit +fi + +hy2_ip=${useIPs[0]} if [[ -z "$hy2_ip" ]]; then red "很遗憾,已无可用IP!" From 3a756e98335fa9051dfaae2bf2d1fdc83f147845 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Feb 2025 16:13:46 +0800 Subject: [PATCH 060/210] =?UTF-8?q?keepalive=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/keep.yml | 34 ++++++++ keepalive.sh | 25 +++++- keepalive/nezha.jpg | Bin 0 -> 1413890 bytes revive_node.sh | 68 ++++++++++++++++ start.sh | 161 ++++++++++++++++++++++++++++++++++++- 5 files changed, 285 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/keep.yml create mode 100644 keepalive/nezha.jpg create mode 100644 revive_node.sh diff --git a/.github/workflows/keep.yml b/.github/workflows/keep.yml new file mode 100644 index 00000000..e3bca76c --- /dev/null +++ b/.github/workflows/keep.yml @@ -0,0 +1,34 @@ +name: 批量访问保活进程 + +on: + schedule: + # 使用cron表达式定义任务运行的时间 + #github最小时间间隔为5分钟 + - cron: '*/5 * * * *' + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: 安装依赖 + run: | + sudo apt-get install jq + + - name: 访问各个serv00并执行保活脚本 + env: + HOSTS_JSON: ${{ secrets.HOSTS_JSON }} + TELEGRAM_TOKEN: ${{secrets.TELEGRAM_TOKEN}} + TELEGRAM_USERID: ${{secrets.TELEGRAM_USERID}} + WXSENDKEY: ${{secrets.WXSENDKEY}} + SENDTYPE: ${{secrets.SENDTYPE}} + BUTTON_URL: ${{secrets.BUTTON_URL}} + AUTOUPDATE: ${{vars.AUTOUPDATE}} + LOGININFO: ${{vars.LOGININFO}} + run: | + chmod +x ./revive_node.sh + ./revive_node.sh diff --git a/keepalive.sh b/keepalive.sh index 94496879..5addc005 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -3,6 +3,26 @@ installpath="$HOME" source ${installpath}/serv00-play/utils.sh +LOCKFILE="/tmp/keepalive.lock" + +# 检查是否已经有一个实例在运行 +if [ -e "$LOCKFILE" ]; then + echo "另一个实例正在运行,退出..." + exit 1 +fi + +# 创建锁文件 +touch "$LOCKFILE" + +# 定义清理函数 +cleanup() { + rm -f "$LOCKFILE" + exit +} + +# 捕获脚本退出信号并调用清理函数 +trap cleanup INT TERM EXIT + autoUp=$1 sendtype=$2 TELEGRAM_TOKEN="$3" @@ -197,7 +217,7 @@ if [[ -n "$autoUp" ]]; then fi if [ ! -f config.json ]; then echo "未配置保活项目,请先行配置!" - exit 0 + cleanup fi monitor=($(jq -r ".item[]" config.json)) @@ -365,3 +385,6 @@ if [[ "$autoUpdateHyIP" == "Y" ]]; then fi devil info account &>/dev/null + +# 清理锁文件 +cleanup diff --git a/keepalive/nezha.jpg b/keepalive/nezha.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a05ba8eda63b7098f17ca8856f525f6bbedd9e8e GIT binary patch literal 1413890 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%0D5rrvUi`7#z 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ⅇNS0l!8g2>$`=NgHZgqrc%M_ltsSb$<1ZMm^5{O! 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%0DxT4&*Yel?gWB88<89hu z@o!}a2hS($9Bb5Mc1_E2l<62_`F`K<^kcT4#kz#?)NWjom$))eV}-)l*rQcQIsS)A zk8!s1?yL(~w!wi~Ggtf_3ih5vj@XB}AhkvZMx$o+F3iHlu?z+>KmgSBa79%iBwPoQ zd!Mh@+(W)|ruBOI{-Kl~B|3k>(EitIwS_c<2AvFaxDC0Fjh`Pyilfq`6HQA`3t#d- zYy;2r_6?tN-7Zh~%+Dvui9hA(Z_z`+P!G$XqknIlE)t$-hmLB1i~s~1e@#~QBjxRa z{`O%101CA@f3wq(*}LO_9TYsbXiZT(ixmYbg8r5%t^T(hpL1o8EQnQ0Il$puetkP2 zwU4!p4@qso*qKU-Mip}`aH5crrvMTx6a)D`fIXjCZ9$|6qO|kqhjYKP+pSvg(wqiz zPoNzo@)c`QiGrf8(MXY(V)nRF0T;iuu-mkE1}M#Q!>8q*Gqe8iydD~nQD63Y0(1MO zFDuj0wz3IQLHhIfxBJ(z{@b&;K=QAZdd1Fk_Z9)dHhqw6!f?{^*?DAF-F09Pl=rM(8g%vGS0T{P-IKCjnf_4NM$#XXW- zZ?>>Dm8m^SyFau%$GD)H;g%I5v}_)f)Vl&2ekx=#u>OONM;^*9If>f|iuECFe$H9h zsB7o(8|D817t_LEXz74h;ZjHBfq$>&{?In%aVHkz(7rB8+bmEdF^Z2+I-LRt52R?f z^#1^fx3rQukkzx%&9$=HAJZC7U;omtj?mw`uXfT$E+|U`kT{hL5*2h|>Rk+{-xqmb zVA^(@k}jy>uxc^aeooz@22>%>`yD~*&zk+Y)j3L9JiL{8DkvRMqNvy92o00p{bTQ(nOeqvyoys z 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%0A{X}`5L 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%0DbvB>QM2gSJXXvPG#~!Bq<8Ck}$m^raVu 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%0D$x&HtFKsN;6*q3WL zt9(DtuM4Ui_K#oodJ?+F;|~7-?5ZZ*RU$2+vlis;Jj`x_u}ACv6-Vi5E&l)=7=*v% z`y}R%bUAO8oLQ}JF3$*KAh50mqg-&|$Dmg*d!MjuQmu`pZtjoz5*m?QWP|EBbibEt z{Cw(%D^|7Llb)v}Gh`Y+;j1b)BvM3HATQ6WSFq6DeZuC|t-7w+18}8F)9vG5v!eBv z++J%;GVQkSz)+W`tw`z)N92a%YB_NmKL>)^_~urH7av6zm&I)$0E(y$zoPrSx3>Fo z&X@be#Me@c)#Nm<*E-Okqhxn=YgFG)zE(AQ7f$EP=|=4>5Dxqn*Luu@^u<>7v4vcc{16fa)6^Iq-lKIJ9V`xw+QAw36|+xGR; z4p7*(U590dlsR%gr?R(F4F`L$KNFwgJWoQN)S=xSqmxQpT{MoqmUfL;Lj-r^%D`IQ z!8_f~*UHwWYqtiqpss8373l8%?`-AkBP8uZ^CG1G0GFd%j_a&HUt#2}&D5mz$q{#X zEF*~8;HIyy`u^d|o@l)0OVMw&sR>_7^%uW1%f8-tRv?JM`TV*o+vm3-SE{7I(|z4V z+A%AeK!lrI0s6lO+^@^rn(Pv7$*7|=^XO5npib^R7wWovj%uzvwsxS-@k``L2?7-S zfU*5J{{UOul8*(H2G?#%1C3vZ^iOdj+%fS96zDYGTa!DuGYPf2`k5>9u7WDMr~;a7 zR7Z_f69Hh~QU|eq#kSdPc1L#RNAT^&RTySN@&};a<+;rWYfZF3W*5RwkRnAsPp@E29P3mQ77~a?Zp2+v#dSJ6tZ?M~{D&SYspwJfaw!4-xIsX6; zLseJDzOC7`LZ)0L3z(1)^-Je>Bb&2IPx~KWNPW%bz4qt9Ns6gF7Zm)*TUk~{B}G5U z(049d0~JA{#L?4JQz6qD!4z<>>aez+J&SGN+=_i&?2RM(HhOqCpa+lJ(swmcEGNqh zjR+x$&_E;tezx{$V1eqg41?7jRzp+KGwkZ+q0c+Cy1dG=f3;ueZGUrDEZPa|XaN-I z6qBvA)qWicKNx;N#njvWj<&ZeH4X~C)VVSXGzba(xu%R?fPSa?dkK55?YncIE;JVL zi7q3`R8aku`ShQ2TOHQO#HJJp*Ze)Dd!W2JJcD3qM+4Kv1_a3+59w|_g=M*WiM5|Tr~6HgEu(Hr zc*YcT(O7uk{{X(X{8!q@1vvB>-58UDUYg8B&)5Cz-`dS#Ff-77;AcH^SlSY$l-QBa z`sa>))uavxUaq$9Y(ua)Bg>`!CRkyCU9I@JKiB+k>^XTHl1Np0nfY?&+SbTTCOvwV z`-XuY(n=Re;QlRt#l5tfRl_c&2crpj=VXFS6Fn*CQIGhpr&4Zw86jG_6#oE&wwsgq zx&Huo_Qcyg{VJ$W<_qFwfbZloDj{@za@Floe|QW>ch-$kY9Q*Y<`RYm)j& z;nM4y`&gqByMq}O0-S!%krh%yRV&E?2-JdAR`wszdp3+bV@!vjrS$gKZLT5HW2L{t z>InK<+N5f*uS9nc>BtowIAHUcowbpJErQ6^<1!Sk9tyfCo*AR&;93=c>UMi8W+NUUg8^N+Cc=;UornY*VSNd-3N#nWaU6;x{4X+F+* zz!ujmT&Az;R15zAPjJ@f?3TxQGhA)%ZOam9dw}}~L2c99?q9zxb87zpPVdIKU&(qB zD?VN9jmeH|enyich>}nP%PlymjdPJ zzyH!AJ9D*j+je-*+%$qV2G4NZarO7aoy(NA-OeHk0bag>nk#8ksT_Ja9c}W0nyKKU z%vo>fD=D~RYjJ<+`1cKSC$zF?FSnWzoPWi19J<(m{YXFJx*xY*?%8{zYs%DfLmg{G zSwv-5n_r86t@-u?+IAi5Y235zKpjOIn5RN=+Q-kNH)7#)yHh6?{{Y!AJn>G6{91~gNm+p8P2*qd z{YO5<9J_h9?>4{H{rR;200R-j%9T7m&YGDVuXl3#bS?E?f753of`=^wP*j~UH<%RD zAT|J&{{V^h4CfDQ?l%2bR*WT3FhH$G<chaKRR?H?jF65J3|h8ZpyS9j~GQ>D=AN4!etlxdVnpi83(1* z{{UV+hPJL`n{K%~e&#$|dHZBm;0Ku%#Yd6olFN8|X`0gTc#%FGTYw&`^FDn%Z4J}? z@W;(bmZNNbZyMr{F^-gT6zaAz#jEv1{{X2Q{fD%B#>_T({A(8REu;XW44NM!=tr38 z4es9^gr<8otZkL~1LgLQPJzDu_~W+wXKB}C>S$q>v&AFP&*K`BWKuu`eJ}n8*x%ca zbN6ma-eb9jL*ar0XNV`$<b-ZCH!X|G z)lg(apK%1GST*@y!zn-4j(y}l$#rRUXtx&J7=Oj|1;4hI37KEZq`Xztw4bC%P+Z$d zfAM;6q`0aAZF zdktQDTRp^{CA_&DKW9d9d!0R-1h|hrc<5Q$ef`$C=URNt1~P9eS(d(%2WJiS^-8zr z{eNK{!ZR(L@?(aQar-(FZQkozOyW6?fs9a7`Hb`_*6kmT`_hxj*ouNpQt1JJ)TMKPcGy2$Ub773?SyNRgQ}p(_c~4zxG|Xxks8h zNI_5=$0=lH0Dha;i~DE&a(R89!|}NJ)1ym%X61<_3MBy7&~%Tkz-9K##*;6NsH0`{ zhL$7aaeH1lN2LD%xAt)r{if#_p3YF}awvbv<4qo#~hA*>=zB|(4IpCib8-7_&(m6v$Jg4_b{Nk=`RxHEkW;Bt6_t3( zm@4RMC8wx`!^JF5q1A!bw82r8s=|pZ041(HumtzsVn7PG#@U2oX739-+mhVZ2dOLVZZ`- zkF%pywl~(=+&UF%AdYDQ+8Tnfz0cGO{eRXT;w{%>-L|7p3n=pdkSWv|y>hnowsBHZ zg;XAd3Z0#Y&8T=n$1zc*;jsFCZU?dmxq|M&jBQdp!RR0_=e1(8)PcwH=^>xkIqYN) zEi#&@R2vxhaHpSA{{V;M*^P%WZTFLDl<7Y{mqEB%+^|M8KAj_QTmJxY?5gk?W-tcz z)65tne_MY;Z)ZD?E$y4+9znf973u4ZqStg@(UH-u*!`)4-O(jHthDuILc9}MZr@e| zSJ(P`iTA!*+_p#Y6TLl0r_))gh{(j43Q`SZNme z{{T_$Al`N-x4mbCQ9qYaUi-1KU9^#=51*Iq>H8<#GvEn&++$TzFZszLR@PJMZaMc@ zc_{99Np#43$pfORepgGz(2u3PPe2D}e1O=Q%5+M4e+^7zd0I&HGBCMe^!7aEk8C-T z&Q_4gsSl9PQb#IsM)78RSsb!_x(G1cud*vA5WYf*WG!tn$f|E^5$g6LzvRwhw;mvk zkJ(;@)9gE>V!i`V`RAcF2H82t)5tONhalSVGhWxau=Ws~^9_rd779K@e%^`LUcvF# z_8x>P3M^7ntvnLOu%dv0WFD0q3v=u%b2aIk#gR!T|pmoa+Yv z0IUMNT45|mqF{W$232)p#p;`l%i4KtC*?N>C|mu^yAr;wD&f{N}O~b zy0M0C=^|S6Qhkog{{S5$pig=ApIPpulxFr$(8&f3sj9FzmX_b)D#RQ8=h^Px&D_Ve z;>U8HAM~=mf0^iCv+n%Ev;a2i%ZO>f319N_JrfP<@f+jzO0r2)XJfH)xnf%lJk$-V z`sjtUf4qB;wtsp3#j{TX>l$D`->M(^njWPMtKI(qayH25m-09IaZr9=Vd%bYABr6n zw`Vn#xeSdp8hVTqWr&Tf^<7K@dyzK3czO4Aj6(z{&T&U}%`8MqxH zynbV%ecIbkYtrSNHV!^t;PD_p`krGeuO2|{&ArWBqr7gjS?cB&0%CAI2chav-(J8lC6HO>sSb!_@Z2 zQq~PJA~*CV-`9dYrx#O1Y6KAore@`o5(oOj*_EaHT`5Jw zk2BF@^9h|=H6Sn^x&HuXr)qjk4J{(%+Ay&qhVn6O0@gm!%P!?C-%f;7`g9Y!-|kjI zBzh?0o}H<;1r)UFCOn2u?64PKuk`-_AMo~$eX{8!rOqqSDcurPB^sokBhs3Rp=#+% zNn~QTvEh##=?DGq*);K(rV6>wR{Da#9--4^<)L;@D~l6r`h}0w59$8H+wxioz%(5; zScU|2?l&8~uOL583laXu>Fq0RfK=(n%cguaEmP;z#K}o5in-Nqp}Dok`u^JbXi!j& zs__Ns){iY+6Co2mpP?5v`tirK^4QzDnjo)CG5O=6Pj2T#!^crA+ejS0)Z3G9VVm8& z#U)j6dfiNn52snO;zxaP%HV0aBl;72@&5Dfu-l;chfc;8q&Hl!nTm>6Sn3Fp4NJje zZhuiW{{Rp1_gkBAML?%kmMGYE^lf%6M721hJ}yQD7UdA0K>b7gf9c1#vwXNVmsA7_ zpFWD`2v6z?^qFHY#n@|YDTEpWgs=~K>(Xy{kOFc?RN$Ry+crFK^!{UT0Cju zz&KFjpgT8-Y&K?DBNnEplggTXBF)JIPq9s{(7LzK-x6b?j?ufxG!%Rk=ug_)GN*83 znyQ|7+2a6&C-qrxVt%*w6x}z3+o$lIO%JC=&CPMy$Rd;yJ$gs(Y#nwwNnnyGBVY=P z{RzGQ08sWJ+HUP`kUAQZ(C2I2t#4vkVqi(~sPpI;uFFkFP|-QlX8!xO8j+!q0)nboe?kZP z-qhOM65(5|7N!L&^Xewo-g$kml8QDT9FQR630lj)S6nlb`abxLf9yMop*H_bmN6=pX0H1K|){|{hyaOC*UVy7< zHIp(g1O9%F{{X{o@}cVu)gIW~GwIrS>a@_)5MjjRU9<|HUkZ}&9DMO~4a_#DRpA<3H z_&m7Wy%3G0Pa@q*IN{Lo!S;DJ$z#4+3+=Rs-k*kor}#+p>je2%+-_>*4c<#&ODeS; z9GVagMGpgxJyj2Kbe8<;x|yb^$38<18=oFliY9n;1L-vp4^j{<_2bwnqngU&=`Ytw z@+ScNtLxTc@?W|82RBB(44xFt@kZs4n7mw-(^!9(X+*(k>8;bqCA6eepwIYedN%b8e%|vM#4`KeeAo0oL z{x$6MM9kf%p#oO42ELT)bp+`ABi`ct6aKKbwD&O;9o=7t9-X6kBb8(T5Uf2cFMfWU zk7(!&WN2+M%LR~Z+qdRilUh*t7Bgtv>F+Y&^NFp{pRPgUu%uaq0c}a z?|Q!2uZp1zn5eC2eEMO}bQa;F4O4@tX|xuR6I;h9{N6TS&-))|HeC6(xe2%?kZ?@_ zADBFP-LF6F_mTKlsG#|iPxTIx^gGYHy7Kgq=5sW($Vf;lqZM?vU+MP%{{XB2KF^xN zlXsuiff37bE82fC)o!_ak~it~- zm1tW@KVPc*4{kh*u*!w3%SPGrsOT$w?XJb){{V;*jh-hTm)X(2>+Z>VvrU-ANYs+u zSf%X9SLzLokM#E!U0TnuUJ0Uetq*DP{Q8bJeou-xTGsGtL;UH{sKa-r_w^>>MUJJ-J4mX! zWjcLF>ObPX*aet^`a(j)PLr z9MG*n6yj^gtbpV@eZmNm_j{xv#Z(rhN9Xg!Iw-w=)Z3GHd#S~@3=QDC-||am(TL(LdEQS4&0;^czjJBJ|$f? zr>8_LN9INX&d-8Q}9*`~3WsiELc`8pYFeC00Kz6=tSsLyi`^7PeDwWu*l zl&eILEGiXIV^vkR13&La7ZV;F;^Gw9PCYDd+d=m+QAjkaxD z&oa)oTUDv2sZ*p6TGE{cFL!%u1o5YrKQqvskLh1hoP|n8x4Xv@h9p|&)o=D57uDeWAO z$$YGzQqU_nuXC`c^XM^g%p2b7{v0HLc=6%Wbys9k!#CSfMXn)qxBvtG79WfM0Jipn za`zGeKhoHxRWZZMoUTvJ3kTuGc01v}Y@O2?_Z8mne7dYo*Ki+6p;3}P(mKi>Pv?E$g&e^iq$0KZdamBe_$l3e zjSNYK+!#H+?BtoMeC|wccn{!P{{Xf=#GJkEro+nenRgpWZdHIZUIXSe9)>%P`Lk{j z_)#AV^8WxYRiE-x`Eq=Q>70CC{t`3lX(mExuW9HvCTC``0&( z%H;7iIQ&c%Fv=vaiQw}TV8MiM$+!5AYyHUgdzQ9KcCojdNhuU%S{i<16zWIWxiZg` zr5D?*iqoL&N`_JCQ|d-~yM4LTm|m`^$L8oZo+mY!f}SYkmaSPs=^TbJi;#Ytd&UcY zb}a8_KTsgz#mnPi6rG5ai72x8cJ>k?zt8|7Bzr}^{o;AcZH=w|w@Q#k6@Sgr zTmJxKy``y|;>f#$ol?o4*lGJZL}wGUw|?rEKij#E^VbR^rh?Tcry8&@twAc8-ID^NV? zQlL${Hqq{B>EBDwznb*pIpiap9( zFTOnWb+*T0yw0;C3I-$f2;tn=)Ot4Axs!RZXSK2c17NV@`E-Qr?z8GW#Y`!49eahS zq=kTaacXdR1&aQ$PhF4F%5C)27+>-1U$c9ibrtF~m3j~eJT&={{(glvJD)N|*=c;r zO;{Gl)l36lFSDhF!2Vy~4>!#^=K4pp@^~J_N;4wtp3JMF^DSzorl+K>D-e}+T~=7j z5;-b49`Yh9&6}Jy{{W}j_a6nyf?|_O)c*hoCY?pMe(rmd$~&9?09U zE#K?@f>?;qb!!I%4@2i(hMddIJc+njT64D7AUgENB2a4}@YFskgT}l%p?{cN9lHA8 zc2?v!1Td{#WnAl7;83H^8s=LLEW@93hqv3*PYBuN1TU$ICMp)rj}5^Av_BK`9GaMpY|T*beUHq^a1{_T+DQ${{SvO%db*mD;`+OM9R8> zSPT9I$GK}^=O(_lcpgAm z1}Zv?Zuw#*+>+wdP%-Wvng0L>+tP;xfyQC8bic%@SH`Lf4;rZj#nk@*u;bZY>9}59 z+ejnH`2oP*9?5oV*mk~Qx4p3}6i6^D!-wprN;lo0?z;ummDLLv`1<_1rDI1@YGjB(Ca9*8 zDF{=g86Qanzu0@s9~LhNJw`wyJaN_nPi1h|QiW0kRq`|+ojOob;-oRFx)6E#ja(ni zzv8~oNpP%aoh*-UV!F>x5mKr(*mL;gANJ$hA&DKvy(x~_7bB-A-PEdq!5{zyfj^Ev zKG-(sMO&rumOuc zzD9hMsH5F@-G`CHb>%$CD{fuQ47hA=SfhpzV?OCs>H+@KMx|}WuW>&)bLP>sM%H$c z32rh7Q&6?}j*D;axqFuG7Jgy62;c9dqc`TFq;;_8S${9S^b-#d-nn9_nxRsL|OsgbpZjY4Sc_Z$qXbcHRb} zEJiMpnx0n*s}(e8x@F5KAz^Qai>UMhL!tIr`ynAGXO&h^iO-!wkqi=X4>0&sKoFo zT#aNb30VlSriqvG0re1n!`>?U3{qrWNg%$i8AjVc_e{uLnO=hXG>pCd&iV|v}w zP+~kV!}f9V>b|#S4EaeOYRZXSoR)WYC77|~vwOlF&ux8&nBAk_Ta$Q;GEG zU$#qsdj1LmHDa{rz3yDiR(80tUlk-nMLY^Ep-0p4$^NI@f4XiDxy_{oBVGXYC+$`c z*}RT5qFkLapz?qKD;=Wpemyjxj78g4A-1-?Z3 zbr^4c((^Aj-*}hT3mjFzY|wp!2c$0Y`RUxdf*I(xyJ9vaG|I>)#Z!ImVNle2Hr%^*8sGyna1FHHEPrQHWn5fT&m_fTVx<0%bzFWw#{SMA zcm!1>>h$vI3f1?fq?7nn{{V07(%X27)YVN-q5gd=TfrCuk4+RkWmk{MB<);U1U#jU&Ay*g z{yx-Q^CUNM7`#63UY0K8g>)Qrw6EKdRYbAM^0M1bja;8k=bvHZyb-x{S{|&IXr05L z+atAU=;UwPEQk9}I0PS|{+`b*_erFVpwpv!eZWk#UX!!p;RF=nLE*7$~y(s%S9s#XZTrEDg>1{Rl1Wf42LxacE3e zQ)(YG{?9>;$C7z3aFEFQAa=>pRY&L0Rgn0zxfNW}V=JU#_%t(eKh&R3^!75h_iJr> z3FT4q)IZPBS@zp&kM(xz<)F{TKgfCxYWh2VZR!5yFnLHG4^qz!Jn_hyP3|2uu>SxK zeTre{&4+W3z=UR@EOJ}@or%W>kQH)WlKF)+4o7>&()>ZV?IDPTFF_O|U zg{7;=R@TruFV-ojE6c{oZY^(RTaPO8hcR2QmeLkejY^?g{i$C*i1!bp+#)b;mde%h z2m!4rQb$MUVE+I!j>E>SJtq0unB3yWp(L-wPcAO5T|5~Ynq6_<>w6LIC*8e)+hx>t zYsqcuE2aC#*fCMmb9e3j$8^W(oT)xuT^;VG{$t%ip01~ZJylnCPp0Bvt^J;2;;!Gn9-CX5VbHvInp4nE$X-Pe|Rio$j& z6o7(j+QfcX=)zKU&duDgrbZTyvI)Ytnx0gaCsKa8(2#%E_8l89D&0AdjVJh91b#=L z#m6*n`+xYnp^~0dBdl3YklD2~vLK<-bl*^OtB>&Zp8J>fQEts?+QZCrmJWU1R#91W z{{TLLESJX~yr`X@B|}$J7OVZau9iA?^?e;;vHt*Jaqca==56O^XScJEDdAH}}=94-!*@Q=8{I&BeaZ3BvIOxT0 zmx+N4_NYswQ1Rk1y&|mQLPsQ5ql5Fw?6hKr3v!s#htvmL(R8b z*F^HbC5kDcc1IqWQ6vsxas3zzAMo~X1^)o(GO3{|!oGx#KbIbp-I*nX#HNLV3i$#> z0sBGd!uF?n@16eujm7Qkb}FB0?YvzTH5^!cJ37TEr-(zUX%3TaI7?W6kGTH;mN^e% z*)HYWZl!CxsaUajKM6U<%hRBLBYSJL^8M7CrRy83sYyEAR*X$(DliAHMOLS6SJu?C z)=A=0*Cm)17dQ7QF6D1+5J*RG^x@R!Wn*zLRE;T9`4jU005@1N8=tQF{#t1>*^GQr z2am}V)iLWKPNG5s{s#Wuw%K{7nPX+!pmH-p0jKynZ+uOkXSS~UxWQ$pQ}tw3r{r_g z-sS#cdpBq71l#>h_SHLrT2l;jq5}mhu+V2m51w+@Edv2Wyu4*Kmt?++-i46h^2C;AC$gzJrfco4mLF@a!zzUTbsaEAx3; z`I=UGsa|#k&B8$lB~eGvDvx>Fvhx1V%XTYcw!n}?fD8&#^YcGGuoId2>zaAraA~(G zq?$)PkqVGK6%H0C? zdj@m&y4wdL?N4{&tg|Q~6jS4-0inS4>OtgRyZ-<(b3q%&HbnLtXr`uq*(F~!MI!^% zfX7$Mvifsubmq{&-fkkd*o3!mb49})AfuS%`8)O(w^Hw7-+ z!csJa*;=l)MIx4hkT4QdR7vy}A3^y)Ph|UtIqh7RVEe86@CQoQEXT^9Z%VH@uE&;P zeah{qR1=^amOn2%^=5dEtn2>(k9~g1O)|?3FOs(3p5qz(i5aq6bK&$_C&mS(dbjG5_i zG0e!ZqgqKt$PC}>{{T;Ui^x2Q9?4>t7XV2!3X|0D%llk=MU`e1kbzP^m-6VQ?mfjr zxAD~(8v3NBf*aY`-bZ2dR8h%eYgl`jwymP)a=1t#LTl(T`Tqd3(v8ycJ-*$pu9}qK z51-lo$4D)|N!nes>kcM5t+lo0VWz&KHW?baa%_A`ZJ-gzC!b<{#raQ@L6YpP)#8tU z5ur^gDtH=o8_BzFyTN7$>8+3AIFNz-HQ=Y`(Z1MyLluR0JWtG@Q|Hi}oAU#<;BURDSF1%j zVNwY!1&?6LbOtN)2~UP+%Vxzi`QUp`n}U5fhmrZY6%iI(0w`nynB-Q zbC)98V+Gc)>rXzKib@SD#Pkr*f|V;LH`GgTPtbcDN&TNsP=EpHDcSjat}_`8O&M(> zP_sAI$mZOS$Ft5>u%PYgh?tep$?$_!^D3sj3K_bjDUN- z-mfF#_iE4E-FHWj%7y;$V%@Qsw?Gm(>S0jJSb=_?L?Md(0l&Nj_k)z7Y=)bA zfF3dAqs@OV9UMpzqghpGSXUe?<_AJQXj7yZS7rj>F;Y|u3tHr#&#-qX%Fnn391mW$ z6_j;fd#+eymRAw>T7YwEpM&8&BdEYucuJFcCndGJkR)g znc+)X-%s%N&bM5*pGJb-CKRVqX{iH0)BUjipW*F1v#?z~FS6T_<>Atro|IU6exH-{ z{{VXSRV2jqAX#mxP8~ZyzB||pfq(Gl+E#2-^dhv4VgxT)8(fF{03YBv{=WTD)9$Y$ zQ1#z|h`yG$fotUVhFJY{NDb=HsDD@y+!-WJ+8HHE|Rqs zq_O7z0E2En+j}^Q4I@zMIKJJgbad5GSk@qNeM9m2A75(YgE>71ZucXnv!!Ok#=S(< z74nZt`cbX*7yilr0EzZjzg%dHTgGYBjqL8jCEe8f)!6MA9VoJuBgoOm^aj9yJ(SwS zX|0b#{$jsVaBboEN0{k1Fk%V%{{V;dx7XQ{;OC$W`rI`|GuH?#8suA%^%wmA08f69 z;~iGmD0;Z*LPadJ;aOKu91(5^KdAozhqN`78l%slXE^9+FQIvj12)a!Qg9- zg*?S_SJi#B6f9}!tqLk3V%mPKrAO!3F3tl4UNpxooSw5caNeM~0xfE>fT3zY^77AE zVx*~weNaljfDCLu#^?M!?d6Tn5!3cl+B|ee2kayK{Y9t+OKKWV`2PT}`99u+Y9Ms& z-2`N*^2be&A-Mqm0IUc5-?e}R6debh^Xhtv^B@7t_L5N zSQdR*^nWF$WJUV6C78;k2LS*z+?J873G8P0eUT??tdH(==_7n{TJR$~tI%io1 zmFRNo+@e)Rak)fUV=JQ4C}p@7BmIxCR`qA$P2)jOYvgEu)${4!5{pyEr#dwVC1 ztT@_uXfiS@OHEfsJWi9S)S8N0i~DP8<}J$B?F8=9MOreksHaZBdErRDBGqf$Jx5Ia zTfeI($JFi2-Q&+~*_wv789&ZQk#QAD-|88Dhw1K|+soqC>~4F0ZSFvCkSB=zx=*`p zaLFLLw!%JX{68bm(S+RCii-H@YNS|axBxlRfA}f<^Xw0Ow_isInk5duEaUv$2JZH| zg+kG;pnR#GjTXr4DE9pEP}bBLv6GO1vA={cu;l(d#azS7U%aC;K)PgJH2HJ`-Fa!R zA!*|6k$zsC3bpvk3hL;09u9btspAUo696h8`uL^;h8N^tkbQ(9y19k}w_XaW`4OMD zpow{{)Z1MGY3dJ3jC9RXh8fVLmgHO0s@(Ja53&o$S6Fz-7(dIRX@FXwBx?TvQ0lF| zcJ*PP&SJNn1t3aHv~NvX@t_I!aekI>#o2lHmw$Ioa~C^&`xWEWqM=ZD(E1OTSrP2d zFulwY?DI8DM^e<}gOfq#2cJ}V@++_7cA2i)PQTn1J(=mBuv8xVZDb%Py) zuCi5A#*!Wj*srO+m$%ga0AFp*HTAt-GgY8JKAVn6T+zoKm-~OJaM=ZEd}|&*GB+xv$t zf|;*R>8PnbgQGXvc6+G5#t;hm;~$@wL8kTi*V(%UK_+`@=W&#bOTk$#KB*~PKMm#! zVaN3&*tcW%KbARxM0OWZNd9UWN&S_tNTBxnZ`=)b+mv=SAvFsB03*^3A>Fu`^ubqG z<5GP-X*dJw2eb1g(S0X+txxoNPjSdw&f0aNoOuFpIvqNXz4F^es8MbQsH(CS%EsKwQY za~QQS1|Pc+A5Y72Ki)6xfyz2GYk$8X(45XDmXdFJyjcmD(dE3sb8-kQHrFu?eem(WhZboW) zS#hRM(<2r!`z9s^Zx)V zZfqio=~3H&d>`k7)Q`1$gUI{D%N?cShi(E+!(U9&r>4D`fDcgZR~sY7#R@vQvNHbw zWtFXBKQ|ulzHR^|AvIcHjt8NB;c?->s{;mB0)!faUqi#8jyh2mlMyJ$29}MAumk#A z{qNWjrwxZ1tLxBOcm$D@m34Z9!=YDb_D18|4+_0Q!%*bPi++4k9)6#Le_<`_ zmbT5<6QoBcksLodbslpMCGFdgGeW)`l=Apb`8qe7Q?l^enwb_kQD(CFY39-;MkA0@ z>VMZB;cefP?{=wmy=mmYWA^n2?|ij?v`ErS2pIu@G^g9rmnXBf#^r#Ds(2CP2GWH9 z-G>I_*=45pyX`X8CM=_f`#KD!>wjY)ksq{Rj)PgcLnDr?6?=NE*>whpAv%Bt->H3y zqvz`@n{#cr#wvY!5L@%*jFEjl=NS7u{{Uytq4#4~?o133({6fcWv5Lk_XrrcOIq!J zt%uj#bIcaob@Yuc)@VZlPmo@(kj>2ptbBDN_D_#(;nvO&85020Y0(=IzsJbTPiA9!H`V+g}eieJfPtc7|1^8jOnrnG#j{unNe1&D^E$ zj?Hos(|(KsFki|#`k_Q$)@gBuCKEcf2+ESJD>1;fkAZ{4w2+91)$xSrUMMpHmlWlLM zeFna#2~>EI zaXk?{?;Dv^nxFMkr2Rxxl~~y^5mP9Jb!0png>E?f-`d1!ZEgj}61n{TeIlM$oldh_ z@#=Qe>%5AHsj;}~%A^L!u|q6}lW-1@eU@*0$7QU&+^U%MALr?)8Y^)^f7$58;XXL_ zE^tEd<3EQ(HlN+BItT;*9$~Se)Cm6o4_I;k02+G=jex79h(?4db#VM&)q8)h z?diSI<%yS6G7?V#PPhGJ+luy*TcJ-4&@L1%OHp6|aDaXt7+=p(lhO#CQ#!j8|Lk zI-E@`FLEQ1K_H(`JYU>p%ytmnOvreTPLbWk z_7Z?zZOjA=R0F{D#huOe-5~H>>GbHfc1KZUd~@ZnAXlVFWR{vg_!FUhP2*4P5zhnt zhq*(RdDhvOSnge#jRPEKsb`jX_S;yq-D)au-{8+hz8a}1%SOv8FmkM}3cO?+6?JPH zkEcH5XNe>g86HQeOiGNJ;5yZ*k)A(3vQ}i7>D_L9LdN$00Fb@X8&wj6(*@S1qdg;% zR%zSQ>AxKFYme#d?T`e=N#xQ+Ix-z$nDVHgmF_^g0zvfu0EhbC;~s3V(%(=%!_ZT4 zj4NtS^$v$*hD$3W1wU1>Hym(p^}nzZN&zj#o?gFiLHT3`s`*|R>eK!j{JVXwlzna3 zmC~GJ=%&DDXOO?yvoKibE1mw4lf-f#rR;dOwjz>UuIK74&*;C#zKnif!`2`B?d+l5 z-T9lBVG7_@NY{bE?iBugTg=oOcYI=*CQ59DEnFc78YIW7w~f>=C9n{SxhBxWT~p#chDwL>UlA4 zcn$vmHrtQreT1($YjE4@umdDO`e*%A>neS=`@q2(N44`=?Gy_weE4@CEPC}^R7WMY zGPM|d-3?YZAxAfYri!`-f~uZnHt|aopb&nxgQ zq=q-rPm(neu>P0O2eCz!-PCL}HEHY7&6eYT48em}JP$y%PS&cSst=2m=8I827rSr| z;E!U2+#|S;Ov^$C9)>pCs?P}%fIi%GWqv;G3>NU+G2^#Fff7UIN_h@}Qz{XrA~^p5 zVm`jY+r!NSTA(xpnxFQ1kNwZ)ZOdWU&BoF3k_AVQ<6f+8pQ-jfB*7&%I+}_#0Dj-4 zEC(M?V5w|Ard4~1PLszxI>lqoyZ!UGjVY1Xlk59BRSmVXUKNf!g&Z>2fU;CZ0Y8Ny zkGov#9JwS1!nmXU(0WMQzV@=}k~VcdfR30mJvoZp)D?6URJ65F&l?1t0x>0l(D6vW z)7V}c9nWmI@%HH`RMcj=htH+feCd6)+%3dT(Uc>!lab~Rr&YDsonM&i&BsxS$HNX}+85dY;)7QP=#m^gU$nEb~Q=GVSSkYT&&Fv<9?4 zXU?5X+BwR+N%7OjMUVNhVn5dB`ui%rvx@Zym1-N${M|3Vwzs)fSyv?a^gr#c@{bWD zbon|URedH!05}%4!1fNGl8mIA20D+g`9I6h7k1=RxT!X;q@Pbdji+4qM%&Iba8hI= zr>Hgx3o0-t@pEDi^!9=~9nWQx{AG00g8}{@pHL?`@($}{uEsrTIGr`<)Z?Yd?(B4! zX>+r!4C*6z)}g?7+lILZ>HU4lJ5%rc*SCJqMql4^>J$yZlAX)R4mj4$eu!8%9bN4%Bx>)YN{<;|qn zTg4m5%iQh*yZY4eA7`H)qi$v9jqdvIU05pcRWt+S2UBysdykH%?=h5+L`l@%7}ajS zQ*fYjf3LPVgWG#JZ$7tcfnyC%gnr%~J+<>~)a&5gIjJ6PU-+-Hq#l0}UrkO0GM127 z1p>tWJva6R=53dBg5SWfO>Vq%L-~4-^7MUUc>}(wzi&Z?Ni$Su{G%OMm*h9w%*sWs zbg}{o{{UOuU3a&0OhkD0l7Mqv3_0lHplHw!L~+zrOb!cl>Y!#Iz()rky(j11Q@-+ zwz4TtQ6P*xws^Ii|)Ci__VMjgsG_fx<5^_HBli!scF$U>>jSp$(}o(Z{*$> z)?X~tMV~{9>mUGsKjZ9^Y`aSU%6Q00C+1JDQhvkCR*P)57qR4UZ?~qZtlsEKRr^Pe z%?er3)Abb=U{Ct~&t~18>LD923NgZ`_VjfU*(8-}vYe04pbvZR{Oxr;Rx>q1radl> zhBC_QZ7fCjvG$(JZ;DH_ytkO^Ly8I>h5J3camcdUy$bLnj(RV9KXK*i_ejKHuwUd< ztW8Bip^i9``~?av&mP8`=GAEi)%Dl+1jyeAtx5ZO9bckHVqWT9W&KWnF~_4Q%QaY4 zl}*(^(!c^NIr@)r^mh*z4jl!fWK4rzxHc9kRL3kam1QA;3Pp(KWZ=m!4Ic3xNJJ<*n1D@P#kAx=l^={=>rz;=A; zJrhme^4qT!+L?C(%?w_UuhDQoelv zo0sKo!L5m@DJms0y}*`8^rGB-eP7}1eYJZ{%vR*faG=x5y&6T#J6*iMPbQK$HCLls(sX%ns`2vB%Wa#BVOY}jzRp~dlcL9ru78CM2sA8D_nFWJk7Do0r4b4t;8?} zy$E|_zxRbgL6N|A26k!;bfsc1nX0O#r)4^tAe9cv7y7T#-p(eUnReM$(&}gN2&(EQ z;q)H82WPeAJ;Dcgt>My6bgcnD#AqlF%cqXc?LL6*-Lmj@#ww3BpMoGBdMTPJndFQ6 zMW7>-?v}S4?`e7Udss2MABn1KUpjP?Yn<${wVjONt%=NJU>~!p+wJH+JvP*QcUg7K zW(RY{RImJct0gr+l9gEMgi^U+OMj~Rk8jmdMv9tn(T5=20@xGyHvXSab2+z);wr}3r$8Hza=Dt;PY&h4Q|P@4 z`$l?9jcp`Q6pmS#AOwM8$NGB*?=|<<&Hccc7KMIY9yZ}E%%RDlAL_47(q#5-E{%#&Q%rU8WQkbFZ|VfM{7^)_H=E_ab8(kyf@F{RFVyRi6{IW2OCRtQElv$8IhBEYMMqb5sCCY z$i0aA^Ypj7+}Ym0>BfeK&Yc=x9jV}WE}1eo5;_w%7kKBlluM1m%;LJBtvbsW`T3-F z(6&EYoBM4x&jtKlz)?q#9TC{sZT6K*Q>-TsI{k;`&|%p9Vcoko7fZOeEk;3TavE4d zYNjrUD7yI}{{Rqq9?$lj%a-nE`Xz#rCkChZ4?vyP;^%ZS3p=4Ijv;YR+0!pxbO!S6 zL_2qGZC~8Vl|RI4Vp>{Cc^R&1CaZD4zbD&U{{XmKM=aL&biAU+!3Q7N)MvbM{f)JZ zt8*HwzDXQ^K8$4-@_PAwm9C|u!eBOzLYA>n;>KY05h7WzY zQfp7GRh^g6MN|Hx)E&8V4=e4V(rH;r@C+z_E{z`3{{V#g_nt;LDtFg)b$-o(^ctj~ zpw8}Em{k6tih`ChN7MZ1ALHzYar@8hRuLAr+b3_FjIj^f-PC<`?oQD2cvcqAIQ0rg z`8qed2l)zoUfYjNRoPwl*n8G!E%!7SDoww%F?9|F*%ki)%c_E(>Lm?t@%IyN{{Vb# z?ZYP54W*)-Rf|af0JU_Ek$+wJo<^;Wg2n!uKjiAdI=kT~z#fb=m0Me;HpXWyL#3h2 zZp5E>Wc;z%iGJre(nbj){+NgOdxJTH?;*Nhv$pfPOF91leMU4V?OGm?-ERKk?n|e~ z@Bznd2OmSxx;?!}k->}G*xG6;N_ALiDXHO#2w{mvh~b8w1yw)=fK?W^vD?1vQce2*0O_M@5)&=4gK)bGGf)*k)srhH2XKHL6r?-mK(oiL4 zMQq>1YwcA~t!{iO-iXimpuhP0$j(Ui*OECvD{YqRHOb>NiXD&bsQsM;_f6|@za7p| z4k$VjL)_e-_ur0wzU20i>7!N$l{A6&bU^4A)q(Z&>nQt)RL4xErG5~7NY%&J{5bYo zbv^9o={C?>RumK!$-qCisw7ay`m*6hbMoom6}55ueJ0K3Dk55!QcK9nsZSZ?fXx75 zL7u+-ukrRVPnii04MGA=%aGouD3Q88+www008E{XO}@gV0TUn z7fV$|iLZ(3O1vVWSZIl@V(EXW{)gBP+)sRVJ+9teub1WqQWzG+1w|^PdV2IUP*?~ z86^QzNa4~7N4KeXa5yAh#2Z`>WUC}WyLuklTcUyDe?Ehp`Kg|LQu!HF*b+^E99Uo2 zqRwE^3VzOn&_IzdXc_eBB{d(E9tG`hp%?s)J*@FQT`NM!bHH@VSB{lqa~Qsm2^`;p z&4~P8-qK32sOZiM$kKvN(d*K3Ds06};tG0qo!Nj18ftI$z+c+8F)G!~I$1v9XAFAg zeIw>+(t>@TnSwQ!B?OQw0zh@Ol#ivz_Su*zpcJn`w&n{d*rZGiJqSHP6tr{*$Ld1g zlWuHDzxDT78d5>%vf}lek~nmUn{!pZN9?iD8DCHeRZAX!!~N^ovTczhA5n00kDfXs zxs%Pj`W3KPER}Q%HbOUI-k}**0CDtNdmx(bB$|+#kGCBYwc^HWQBIW+^v{06cUwVADn?k>*#l4{k_q#o$(agiIj9+b~b)ZZU>g0`9P%&~#Vx{}uP@nio0 z8uo7d>9$4#Az)9h4vu5@H)Lh3b8z`}Jw7;Y+R0KHOf-yGg#;-!zxa>$ziJ@oI4+iu zqd(bNbnKq%Y?kO`np_Vo173&SlkkSFs6kh|C1DvVe}~hk)J5-UB_jU-?Z4amQrFwe z$XXRJsr+0|+5XQ_uKxh{gVI_Zoph1reLv#q(a+hx8MbC3nks62vq5AE3(ZR$k`g$( zGXhQhvj)L)diw5UW_I(br9RG}z3bgxV!oNBp6%#Q0LFv%bRkRemuc159l1c-t#Fia zC@1m-m;Jv!&ST_jrW8Ww>?}W@LD;?6->v&a?35mk!~DED>;00AgPubTZqLTNQVTOn zPZ%~M)TYDP{@v}q{_-nBG?D!Eo|S*W0nGM)1^W;@j(?v)&guS8KOeWea((s=Jam$R zJh=Jgh19YAT-;y!dz5xgQ1=UI8tu1JPvK!)e6!Vu-iw(KX=CD3jeo=Q=$rOW@&fDX zn5U@N{e_;xRS@kA74-Dk3PnGKxX||h0AuWXA29oYwnhFm40lQ~QfPkMbST)q^*3HJ zt@H|1aiuHOc6Mj-MENhY%}m=~s{_2K;nrdhNi79bsyJWRoDr!106^dDeffRTo)JyP z!c_UEbw4jIr(RwA$Z|!|U#oVuE%wl#I^zT9)p~Y!!q1XjSLTm%b*}QoBm|$mp`xv+ zq6JU+#i+-I1O0wIpKadY^3CIoaw-#zGJqKTyM;QNHm-2wu4Io@mF>H`c{3?F`5uAY zv)>;r`VO`_orBvwud|YtPxuI#jJ(*}BXX1Ca-Ldpzk;nFu{8X-?YB0@Q*yAhxMma$ zr32^sOG96?r#D_p<;~I`@yl2)QMl0(roN5k`E+)=`}ywt#@KL0MZV~I{{Xfqpg|n7 z=CH4~^HL&uOEyaY$r*A#Elzp%0p339-rny>e|5`oVOr25>rhYhWY7F-sE>8_L)+=x z%^FQ;eG#e$+89&pr$&ozf5L#aPG%%s?bNwlvs=fR@i|zs*zn|fo-;B>EwA`1?;rV- z?itLI%F^t+#B;{gppr6=_F;(ql>GW5kJ#Q* z3QD|vYsaNuBAz`AK_mUK_7AZ8h4YjbLH8C}5FF?xzv1Xtu=@eYUsSKT^DUai<~0Rx z=T3-6Y5xE)jDKjoLe+0ss%h$3h@y^mT4hph7sYTb{vPrZl>Y6~a-1r#SOs;bc^%mG zuUSFLT$Sx7F2u2I8-=X0ig#;9CY(5&bOTWL7S*bADXWdu@9MqD)Zd%?9?i*nybDHC zQU0$khgTf1o053ecM&i=G`f&~Vd@53w0848ig{PmY-|%vjqm;*-?Zgz&qY{%ROuXi zk#K^t$bkIVdH#Jo?cMunk*?!@$?nAX#f%NH{o=M%vBHo6d z>c>M~8+B~#;Xu_<2~n5zIA2gdlYe20`#sjt4zwhEhe5lZQszrQT%am*fx?{&G-nko zKtWp$l~MJObNLn{*g|J=)MOz2ofL~5#9`xnaqT^4d8lqv?y1-Pr_C5Y(|}L1$rf6Y zh)>uF{{SaTVcV~rbw-S7{S*FflGz#>T81Vm;9_|enlpYly^pol&vvv7jZgHa{M|a1 z_W&J0bb-i06+EF#^!LB%6%d#D@BqEdzt;97w~pc0SBBL807`m(-U*%SjAQ*nskE&K zOEj_n0I#fCzybQbsVyRpgrCUtZo6&UoFV<4NhSq1X(LhnOD%=J7xz%^z=Tpy$R3@2 zvgS0aiVv8e>OA?p1qzufGPvqxL3e4ZA&dY&sdnSrgKym?qQMKXZy>Bs_&P%N(yzqI zqtuW;!_o^a-+fPmEgg31#Qxr)CyJ^$?o?Zk7O!XaT!YRRlxQtvsXkz+{(Uhe-ot3V zCgHkUL#K^pT7mWh&{*Fp`j)dQXz6n5@&0Ngh^!VLT{1Pl-o1*S+Fo*s+v;S5R+w7U z*X$i9+qu`a8dWo}^MCMDs0W&U_1ymexM<;Ug&*ua!W+l9d;b72N@7_`Moj=yPtK!_KbKjT$iB;aWyoruxoi?y>KDhD zc#ZQkH3O@f=+2*qu6lbJzOxv$gK+QYqpYBf;nOBR0Q}>SC4o~i{_}r<9`Jjgx#CV} z=ZQIT%5v~n7D)|$Ie!uP={V{u=N@r9#m(~UwsQXfirAJzrhpb)GSF}p$4--CDsxp3 z(NaM56*UtqaYn1DiF0qo><6;szlOpiad6r~4ksKq@#v`Et(<-&=9*U?L*@DU^m}#{ z9@FTJfhBfX>Ep>%$M<;|eLrQS{`{!qZx#PU}L0!lcHLkKa

+d%`iuNWZfo^;~Dzw)j87=4!%c*~5*|vU7uot(wM1_3vN%RBDs<7F6x3&8}a=Kul z2010yHAK<4rlyUb{N&R9EzOqqKJxE<*||TJcA$3_%B>YeDoE)~hcxcnyoOYWLukJa ztTTMau78(Dw`=q^GNbJBJJzN5HbxB-EOV)k8%;6f_$dbm{tW#4$F0-cdx(qL^7?%& zZBeLDvk&PX^K{1Jd~S_p9w1L6>*djfrH320sg+@dDtKZ`1w_$gQNTfNJ;zTh`;5A# zc4lK!TGGFtuS8Nb@(nVP`Dg6@T?SjLv2s-|)KoHfX@{V&x2O&Q$EQjBz%Qw@;yF*p8yk1if+vWAE{_m9nKe=4l?CWAM<+ zAqw)w%5N3*5N-kYh+lawSmq0>yM6x32A9aq*$ zD(axxAf1a62+~L<_a}k<2U+gr9s$INsu5SBPSC#rDuwAf6|RZI+pXezV^1YC-C z2HLs*09)CtckoGl3{e`?rD^_{b!jaLg@Yf$-4Qj6hhfj^C;jH$=hEN`^$x5hWHs_9 z{5?yK7j^>NU;1L*}54z_+;y0~Aem1w?%biUi0I&9@^bkL{mDOR3RE+Rr~P0#iGdk*e< z+E_r+w;v(v(Ao}Pw1q^o4&P3U?Jg%9w{Vit#}X|xFgTT%58OI#?%&q_;^}WL_dUTS zsj1=q$4YJ^Q3L5v6nTA}SN{NEJsnOf`!z{y*XDWm2isLRDpLO~9FuM@ety2_ zX3(`gJ08>ZQ)ofQp=T8ocJ6< z@$}RO`uF!=6Rn#qNssj&ow0a2>hUAN1H5p8&f!T>Z^1uLY}{PO4H59ihp$McacC%9 z*QoVT2umqZbl`*d=bnA2iPexAXP{o^D@$7X^qZ=v<&k&*xfZts9yvenUdfXW}=g)gbC|DV% zCQE~ajZIjS!k}ad@#vgbz0818g1s884OdH{$7}N{?u5|nk;im zBb`ji5qEFTEpKY~9pQ^~tfUL74B-u1?rXF7bd!=)4K?6pG>F%=9*3u6oMZ}9`! zVBalc8JJLiNOWam%vTnTiI~vWj~y&8TVe`SgR`-wrzy z4?EAcWu)Ag$Mw@qW}&R{pU@_W^&xNZRE-s0m?L6c1&=I0$MgL?uVgw&r%xn|Tmm|B%h7`z za_Kidl1=#>{RjAaPiHk*myJ3o-89H>Do66^A37LC()@mSC+lPE<~H#K4?($u!B&W(4IWuRvQn7ZoN)gzKussibY2TQPl|&0OidxND zUMC49~I$VW5?!&6bmZH=5YZ%fp6d|o7Gl9V>IaB?8t+Bgj zwv%eSt3v+(2|tAS5%NBLKWRHM_)?DElH2!k(nW-aFF$3DJ&2lp+e%Jw28MN{fJG&mmJ#a2_q(?Znql~W{P zuDbZS5AH3$eoWuxzb|QYE2GT$*M@olZ?<9;5&_4c4yKw=Efw{t4!S`X z=ke}CGAm*H`U^5i@ekS3vuN+S>>X0k%xqZMM7IEsrIh~wUt!(fV2b)9G+C#oOD(r4 zB5@m*5n>&cy6XTL*$5vC-+eu`T!r{GF{{UOuJwq5Iy`JIZ+ z>81560^QlI4L)DXpv{WzJ6-3EYa<~J4xnp~Jaw+`dUdvIVsFjCimJp^(&MDAo@`Xj z1AVmgZsnseNCut<1b#jAx7+S!wB{aPw!XKSUR6P?0yPHnsN>dD?RS=&?$;g653Wrk zSCOv+QTcRNGV~8mE~67EBb%*>vHWrFSG2fUg%H$q8Qr$!f%Qb9wDRH9?W5Tnn_yR^ zP7=A|h`2QrGZQ5hNMERy1I7OU8ikMe`)hXPt*@A^{5$Bw5IbC8ujl8`F5_`9p90}( z52u$$M`(A(-0Vez7nzPcMpcniq>iSZS3G}{%5DDG^X?JfIR|y+y;pW8#)um5$R9D) zV|!vMjZk`7_o zal-EH(Swj044qhHKjtTMEN0x4EMLeP z>8j$!=O#1~237N`kpr@uX>Z8Cu>IG!kSqq~z-t3KeEQLb4PC>d8H3-`*3nuTxGQ0i zZF0*XDnU!IE9lv;hUG35a2M0Cd>rS!L&kUhb z>w8<9UgM8;k~dE7mB|{Bp!EL$LnTEFvDDH{Bod(oWQ~X-+}i&DpY^??m14Mz#c-jA zLCxE5hVDNK;R6nbouAq@7m9}{eRo7!h2dP@z?J-akGH;4gSzU=A0yN^%sh!2m$pVH|fr#Il~BadLs%a%7?o=spEA0m1OZaWV5wVgnketj;Z*_cPG ziz9=t`(j*4B0(pjMZL=CA4`vECfy|Pv`nD%S~n@Q_*aXo=6X|ZY;HoHmY%ANNhw8E zW?xpVBl@rP_DcQ_j21&hK7Lv0n`t9?bT%vN(0NhX6j)FbIZZ4feJ@4S7h`;Rr0kkm&OWXzRcxrr zvlv!bU7amyV;1B3+t}Nby~w!btA+Z6GN9rEXQRE7o~Gr=b;_mJ(^pk%+dmCE*RASm za*%B~H>TW2GQL-5hRD=Y$8t%m!zdLiVf84EKgZr;@_)QsjmT>1Zc6md8L2o?&07*aa%S}J;T@~twrH!PeuBUoxh+9O^)kO655JnLTY(t|^B6ry>EX*4i)_L~K59W9v~1>QbWR~-^Z|!FSYO$c zQ{2MzW&T|yVnFTb3y{Gz8wmatdu4{Dv1=8EEJ26&m0f%_o>Ncs-CV$G|!mn#=CFS)mmx* z4Zu9u3yvYG;6Y9CI$ z(7{hC%7iV$>E&!jn{X8S3ldSN+3Bf)DbixSGWC-Ett=H)auNc^1aeB`--T3;=bvV9 zHKa@8%0hj({Q5_6;Urp^&~&WZy#d*qqDZ7{NAM~M8Ck2dZYfYkeyp^kRE%x-u>SyI z?W^8=<*l)FnS5s-g>zHrX~Uq+#r>dt5gl#v&qmv0e0te?X<+^+4&cg-21=U0MKVY@ zBAS$N7y1??{{UZbzcl-ayzW&?BlOW!&<-Sg&qeY)&)mJW=*!2mYA~2Oip{f$#;r_I zvs1++2^u*>xVr&ydt2N+Hs~*}f^L(^rHu_M!1RTta@r(6?DSkRA0hX?+R7Yeb7@r3 zI?JQU3=+HrZ*5Vq79;b|xeC|YO^0%``mMh0SP@*Xt$h#Aq{iT@Xevc~`V#*DzFm{M zVx_O!L^K8!l)ylWSuVFKfyJ-*_8eW8mUe>H+oo6(pD)|e#Gcn0{{YR>19W#z_rW@1 zvNTiT@{x{3TrQfx;Iw*xRtNA$9?$l!O4zp*`m0A0M1O>X{?A61J0+IqS4OBDK*^^~ zlpi7YMvolylr>it1%o4SIVVr#pKo0IZL~So9hdCuP07}7bt5$^<g|H zuw?Q}6O@sNVd>E@l6cQ)={dNzwG7nqPZCBL0)0AH=sCFdw`<++B9KI^N}pboMR_W) z)OsvimXqviORFlhQVlG;8?Ph%xApfZSj+Vh0NJSMNfVh6dQ<&h@m(2Csq736_QFlG zw*$a(O9Mj!PQZ%jbm{aL{?PuP?Y+i4+soJc9pK*f{azU%j*(qC^ZR&o9Np~iZLSk= zv#mI=ALZzm_t#OKlbU+^dO~qkl?9-vL_RpfHT+J0!|{J}celLiH~S9>nv$rY1m_=1%%dAIuB$}S8{q@F!8(g*Gz?DV&QOB{M^#^ayuSpIBB`_Hlx5#GE%$@A%)*HGjB zujkMa+q(}NRg0fLLr#?0Sgg{tAS%^HPpis{`5)HT_CDm^V!4XwZMO_wCO9XEK2-U1 zIpr>7y0y7mDIJ<4UOuCTMT--It<6-LV2r4TOR?cV2cPynJ=S6Yiw4=@>9(W zkT5H$7%SWAJ-sxxJESFJA%lFur&gNgE3_>c2ELsdEswkLTZ$OqcUpXc*h@_-TV20X zMSrdB?k(PSYpt?U(SpcN5I@yUg3~xgHNogviyrZ^$q^R}7%;dzat+7y_8ajfsTCAF zbLG)=*8@om0}cgAztJ_^^NlQpgM1OHCi*u<18wNdCgDBQW0X=N>L+EjTCnj3A_ z?QH!nXCD-_=ALD6=ovho_QuXr8DiP<>QCG5;JArOC}Rnfrz09)!kiMG4DeZlmMFycKASy{{5{hs?^ zml1i2ka*Pkk4~m-IxK$t#XMC}wH|5%qsjpbHHEKX`Tqc8?OojV_76g6PYnM6hpXOQ zUTwD`XpK<$dUTb{VE0bOta{9J^FP}*wh@;OLi6+=)B1Zdx0=UwL2GiW-R62ew!GUn zhZWSPfIR8DNj(6Dz(;d$C3I-2ajP9?zcVcGI%!t zf}bxT=fkXC-+iM?869q-BhcwI`RAjLv3pPW!bG)E2^4@eUsc7e?e4CY)o@)^fc)Q^^X^UME?k>$wEA7aRoohi zs3Mf752=2H$X&+pfYdEu_Yzg&R(IoK~K7>((}_a~n?%;9+&(3mTkP%+ux6`1W4UEggM6 z(!nK&ct6+Lq~tD1kPFzhn{;w2KS&1r@lQH+@87%BEA-M_$l-kJ zTzsk2#-OC8Mp$W}g-0Mq8b&w(eH0Eq*7vvC>@9|ycoG_L(yRV&<b0byVo9#5{ zI^38{R#6>m;)UZX*H*Q`C!II{0D1Qwb1yIK+rntvKwv#of0LmO(YfDQxi+=WmPz}5 z&WnEO*}F=LMtXFF5^hy&c^r#-$Bt&??o_alwYk)MyuEzC%hb2A?|a3>f2dCmJpr4~ z2Zyf4R8mHe$0MzyWeLUj1l!zA%sXD)b7at4s)q7EoE1L5<+6Qk*!SUWH73 z43v~{K`if4BuEvfehiOq)_@;th7Fhc@3^b+K-aec&^UqO(PY*j}j^Ka?xa!(=(7vs>X+U{0S zUoIUX@|{yA;M7tikV(e2)5ZS3kMaJ#)J3`7S@*(0rhm`Sp3itoQCB)h{hc`Nu8+m- zb(&33$1LYm^0Fw@*5F@`J(q4=$A7sHvaz7126|a>%=6x80;PPueImDgZpPZuzwtfA zgrjx7p*}*97+8H317H1zvrVGcdfeC>NF{K1b}<;or$@VazPlsCjOioL^j13?_=QYl*fm8!pF^2+Q_)HAu~pK_MnYL+L% zjxdTiPytWNt4k|WN_qNl=sq-6(=%v@xzoTmwf_LbpQ!%;A7T}n1f_Z=xsFC!X1yZv z+jDYMP7ORaH~cXN>0{6P*Rchj=e5HfCT}lJf%~4{e=BN?oOFrIP;N|nEH%(o#4XCc zqO1=B-;ZJ&3$3Q*bz8EZLqT89ptaq;=>t)ODZ%8}g_8Kf~GN&uO{YyhetipPxXRd3Oz({Tie$t{%M{O{uxExmswd z>E~#e#G%<3-F-h!57z$x*W4?+?UuH4m>op{Bvijsb+2_#tyM8`p zHr^I&mNKPlsUwKVBu&Gr+U&}HgbsbhyFa+rJFemMa;aB7eLZQt+D$Nk*1n!+qWg)< zX3VvWArn9QPDDv&<+o$+Ij@)x29m#O3RR%=0~>xV4H)1$$8Fc1H+e6fb3181Rr%tb3Vk`+vu(b>+WB1kuK0RP#RT~V z3RtZqbs?pFADb=Bzdpm<&C0g-n`DvN03`CKLe5e5B5P}d2J0d4Wk*`qD#T%rr$_VT zkI$S}V`pK)?LD?9+Bna*h6H`1ou1I@jF?LD}XSiEbe@T8@CaB1p# zU9j^k78gY=wMZo-SLgnItt;YJW$f+Kv+yq_9PQk-T^ug7lG12t#*a(J>MU>g_k*7A za<2EV?~`0yN%as6S5-jyY3WZjo3L%4 z*DOcmpY|T|E0cYmh4?tSaomQe~%K~d?$p$)ILJE@PxmKqaYjP}v&4Xu&J z!BzZk9=fAeVH9pZ()9M*nQzaBa;qBo=gXqi*j?wJ-Lpt1u4-xpHim+o%yBCJ0IG7fEPj_K-ad2p zyxi5#Q#4XsG#0>}5h+zy2gN13ek_{){i>D8;ER|#3vQv2iwq5x+TIv zD?v{ekRfH(SC;1B@DI0b?Eaa|F@nR?{{WMrMV9M#G;1WMkB~e%LPJKi%u)(+Shkf^ zTel;CEIz0DA8OVg5Pp?Sa6aCQpK{Qp-SqvYpX$d#1|Oz!)wJU!ot1D{fCP^u_WPNm z`kxeEi;u}a>^+}a^3}h9mdL6S}=K0~05@3_`*%x!jsGtI#HiuE$1Ki7LQRHDRE z3i_0~G}=;0WMDaFbM^lKVeKT3w?QVGR5Iz}&Hh2>&~oDMd)-Nz`ci?oDBwQcyRM|J z-^&EBQGKmAwTT1tpQVQ$%WnRz`c?3dC>?sz@ivNr<(TIutS`}2m1qrQj;!i+5I_Rr z=l$c~jlJp$6To#zIlgpaSIgJWt{ZRT=H0<$OOxnHR9SwUk8MiZjpRZZ9*DK5 z^XR(wn{KWl(hUclJh~llTTg1!v7ayCqQ_FNl6hrSRT0O@A&BDs%r-r*Xm=Ct&!z~^ zajhy3r>{Yq-RAtqqS=Xd7$4>Qy3H;Uued7eX!cZeyEm(LtZh-bH^xTPG$IHE=AK#J z+Ksr5FmA{FaqM0oyXQuDd2%sjv{_;2VWzYmrv#rNTAK7+yOQ$EYWL-?@9sadi{d9& z%g6!e<;SF6bGrI>ttnd-*4q+Z!^%_s+itze4HX4cvGCK?DcW$hO($4?S@rfOudBR?V26rU;nK-3K| z(`}S*?3l5P$LVkFJ&!)q$ICkdy-d>3`Dz^qEq$@&COTv?P;trs06$2)_jvrJ%_Ai? zeybj@z>5uvqJ#Z#3ZuXK&$ZF=-yp=*x{Nz{>S9mq2caduCHrNzsA-c^e@(Ie9-jKA zuKrzb%=}pz-OIXYaR7#>sLOzm%)e5w!!iwAen7XkHw#Wp7N*;2+ZIRiUAE70!e{$W1!DnwD zhi?ktk1X{a-|zQ#G85u9PY*7aSk0+VC6C*Hw&KbzNBZ8xwtEuJ;k5DcraBK@ZgMF# zbDy6}+6}Qo0AJVv_&3tOQS>Bx8Ch&L*5npZT7J%hw>!M#l~(@%is?eMRFvbDL1jNc z3Ap;6eT%KFEtCc*Iw79w<;7}pe7cgA)NqhYktkad3juGyxb}N*BvG)ST6B!8@@FUV z>pSlZ4n8(|%#|%VfpTZ4jv;aNBT*Ojx^44lvG2Q`BOZE)r`g9HJs!)r-jJ|D&G{O1 zhR%1lSz;rR>bDgPngO~~x0#KW2~S#D2fnLN*E>5OoHuei$JeC8d;a{8UE zp2jkG2PBW!e7ecrMddzo+X@@4!Ji_dQ6T)Yj;aH=emC?6`G&T1*!ZkHYxxMP!^GIx zmH9VswjodZ759-GneJD(J0r&%U%bdXqyek`QPxZCNhgYndZIg7XTEem(QSH_w1i7-y!gb6{!@d{{SyV-*9xkMuJv2 zs)<=v;45%JzozAV$$Ni2T3jtIln=}H`E?9$zQ%60k{LE>nuGHDDV~v%ZO*~N@e9_3 zPxUP13w;fR{hqGt%eUVijQyPk)0I8l*iN0gX^IT?me1_3P10t!ye+17tX5JN)?5O^ z+Lf}{rUOV*`#M24HG8pZCYz?5FyUQ5SJyo(u|1=?u@H!BXl1M_0rDwpkT~R9*(L8O z?N?H3iNbub)S=5?cu#P7YS>%uc8_pWd}6t$sit~YV?IPy2$2ipR=LOpWhnl+-Tf(X{#uTfN%G?>PZ$wU<MB8K^!x*De(x7yfqTP9#unX=C$#2fArC}!g z{{XA@b3WH=7@&ne-V}d;bP(D3p6hWM<-C}aPl`sb540XVLCWq5+ETNemPzLNql)UH z!~JFre{R|B*76-DBm>X2f66*V%v{F%YKcVhw4Ovef1aFrk4?Te{Dcf%YjU6;q(hOd z(haN+>h|>8Coie3)KMR`SE5@!efJvc^!914!1B`UNBXJMy3GFoY}Uu3r*iI=ir?mr zR@Yr&LIb_A2yA9gjUdV!4`jCyu6af0^s3HlAv>ODt2iudb_>=iMaU zEFm8d0DOl^?7g_=-PU4@9FMEkzu+hN^t!!buneNYUBZj{s?3Vg1LR zcAdT^d0c7rI2}maPu_K`%i$;_wM78?eL6e1`?j>Pt;f}*h%(N&6#4%EpQ8zc_-(y$ zLXv&MwyW`GrX;9^ay0Tn(?r~f5g2kU?l|0i?bxmh$G2Q0nlQx}8Xg&^Qa>qsLG9Mm zzfpN|mkyj&NMJtP@#uQmKN`=OA*#~~6*owuDt@0*Pq^QD_e^+ZScz_><=(kpm#wsH zw&)Eh@Q=@?eW`@0*n8`6?aJhB5ovm9dDARyeFZ=t(2M(ByfpD2svlVAG)uswpwinX6}x2#{UcMpR!&`g*PY+t^kp z=ev+4x{^Q`efA|SOpi^7b2=d*q(a^^VnGXUuel#!<*6Z0688nXk4S;f zK}%<6ocihAOJ9~-Tc5A7fZJn_gIBGvsi@CN3^sEx7}8T2JaYmFAlL)-{{Ug^zV~mm z#H3_(T52_6!>0<&V5hxAq%^JSEJ3&RJpTY*e?HlY<5=*)G_5+@R8)b{9`BvQZ2T0| zwJfhs1*H+Y4FvKnWA*ot9^dU{cGhW-5cDcY%{or^M%E(S3v^lJs%d0-BxZJENoFLL zC-P4|2BgIt|NuC6iMUI^bqsrO5vPTKs>!d*6mfTJg~FB=v#VH`DR{+uMOi z6+I=AMPotNVmp9;AM5^qr@d+b)2pmOg+c07Gt^Q|6-_kK!8|UK!z?m1Qb!_Ll0=aR zD#F|m$oEM+Ib&#~P|CuD5nO$Tr(s8qK;Y7c0B}EVN7tu*O;>ItpxAx2kvS@0sRj>o zSH7x>c~x{pN0yntS~uxQ+tdw%5)J*pTId?s_WuB5?l!iAce_3s#^8@C9DI+= zbT&&_N5%(1uH(*ae9khqik~Nsw9v~JrlK1tc*q=IlkEF$+qa85q@Gyc1x{4?H%gM; zITR~X;cEW?#r0d&c-5uLRnUU67-}Vmx>=QiNI)t_9Q}Rd>~{?IqEqGp{#`~VZH#Wl z-E&&->EawA_*(57IuL&=2y zdqu3G*^^)cNAgd}=GsPY{c4XH^-iN(Ys z3MG+5lDmGg>^`i0$J?9Bdvr@4#Naw5pIq{4kKrCeq!({*$S~V}Y8WK7c13>PAP6i3 zo|kJ6_TJAqJ7ALk0CHQG2g8p)E`Yw^ZxQT!1NhCRYmd{64~nhDfa5{tdN2FFJT(T$ z#$za;4U(!6R900G8bZvPoC10J`;<1JbuRSRPRGJd1E5bnY`ZSU?e(VFXBc~lf;&Is z1+r`B_VffUHb!svpZDB*9KFYGddApxJBO3FboW7y(JGQYgnzd`UVq}A%dW1wX-xDh z*>*h_N?WC5<4gp86et(x@z1hl%$4d)xdAOGI1ZCixYf=0xBPF}iXoR zdY6sHWHS|T(c`Hms;QmTA%dPZc_e3R008${Wro%!p5ekGWtoiv)7HH(8Bsi0h*kAC z$5su~Kg<6BviIav*Lco)pLqFq_mSQ%?*61( zcB#Or;a-9tzc&lk@d&R$7DM@2(PS$gXnP)5sN|PXjAPNJ(oZU_s^9B-7F&Jpo(pdZ zO}H0dGT5)r9W!xxeB*%h>TLf2%R8^Oyma;T6}dd?K+(LbRVYa1Do5&$Kf$-s{?dQJ zSIk?ajc*)jZKxVkH2MDkv(ZO|aXb7}AL_44oyW6ic3$0FJ_3%PA58=X2;irUA<(L} zAn4?u$tT$+-M?LL`=9R(#zv8x@i_-RUY{i69(qPKnCAxkmTRU4r zTT?4X1uTmrr|B0%dszPfi1z)ah(szN>_Vh{qMPz!LIU^-N#@AITE3JG?RDq;` z=)dlq?Im4Lj~f_{l@6H2$+8diR{Z;r z_L~W!i(S#Ho;2ao)VrA?CR0+~2h|mfZVw>ef=}nzhA2fr9Tr{RFvnm2)u)+uK1vu& zvLWDVI#iY8`rF?qS9rH((^_@kMA9-V`Sj02hN7mNwAK+#O9?R$!MF!c`u@?$ z%zL^cOOojmNk_) zXQ9F^#Y2{a#9XY7npsW1BGw+lvTd`%)vx8zb3*a3JbEtukBY9NF7Ow668xgvgkpJX z4n2(a2_R`aH^YxJ>FLp>w2D_jT=bahz4c$SGEMf<>7=e?O30YqIXY3t`%?b^y?bBG zyuWX~T2^K6k1Bff(4@*kbbmHR;G@gM5SD0+l_;AvIa^JSgn+9i4bg9ok z?ZPIFjt@d`!d1aAdVlkL5TlQ%xjcWpdkP!Gku;H$(G!(=)KYAeVN6YH)5nRQ~6#ijrEIdhBeIM9kp+*<~xp zAM1aw?=kjBd__rOkyOxmj;F}sXHa!;1Nn4PJBw|Mo(J!7l=DYVM^a{Z8CdwEkxIL* z`LOpk@8C4omMJZ8K_BdW#hk6po4+aUQQg?g$~91@ky_@XqaB-iyxQkk zZQX*CRvuLI>Yw`)rqgR@D>nAx#j8XM{jFG!O4QTpA~~UyTHoS79`jq5x#_oy1l=~t zXxP-X$Ub0>r@g;$v)-(}sy!vCkPi;fkNbdU`Q{#_T{*~2g)ffU9%H~D-v&+L3Lq03W84NR+Os#R4af>s`xBA1I0e;=Q4 zosItU%NN4p)yqb|5}z#?hc_~lSf%#u^rp4|zF7J>FYo_{Xh#jPMlm462tcTe>)aC8oB!d1!Z#k!F z6jFTZ$D{>5PG|!`RTPm+9ns^FN;(n!mO=ps`rp~)ma8Dw399;!^Yl3;8?+NdLn)!u z4MF_;`o?!mRFbWQ*;sm%^1ss7{{Rnn{nFFMLwWRBaks}ZvigpO{inVcHAJ*+P*sA3 z(&z9j0rmpkb^~EQj;mVwbsO(Iye(VCRTTB7LiPfxpAtlkDAZ1(%D^@4em~as48OLP z_p?qqj(3f{u9T?*&!IaHzjBK@9A-vno-zngCDy>)sZ(%A_4XUQ(2N%tA<{DURKnYO94{{Th02j6m| zvGHtQOCMgJGtu?mYGbGV4^<3V7DB=o9vXnmx8^qb*#7`a`zPDv=8jOkSGfhE98Zw^ z`fAdB_h6Y?VXb`4G1Y7K_grp`jg>Xa9KUTGy5g*aHv;;XmE>FV?8~+e4<^k3|Q^k6+=fF_}3u@4 zjowze+6YGTQ~pkaoWaQg=>1OJKsFO`DsGAMpJ9 zjxK$w-*r@4u>6~-=J%E_h{_-LlhXY@Mr^+d%PwkwDFEN@BM1F~2LAx-dn+E>a|gs*10Ah~=r52MinudatW?>yjiaO7n5Czr&eBa|q1Pcy z14scpq`HT(&nWJG<9l;@j|{RKW5(V>#v(lE9}0fLIv4V+-08|!s`k=3i~aW_5}!IL z&kPQ!v%0=8b{AM0yv`No-8)qzc@n;j8}DhL)#+;LM8D8|T{!oeoR#jEEptN0XL+X9 z=#PPj0R4=3^^$vkGudwNt4sQGd4qw`dBfDtP`WA$pHKuh*Xhm8zr);xeF{fLgmLKP z(@jT8-{4}VEpgbJa1FH!{tb_^rM@w>8y#%NsML-;I!;w>`sgL}K_d-Z6;gjco;&C>#oW`cR|+hU!Ec zz47(2(&RDH2;G9Th7v-b_TQg-ZLD0|nPHZsW|bXpSRX!yN=#)2Qk`n3z*5K@s1_&w z4R5coWyRdK(-@y8*R71_k3vUX?g%!ys6@n4)l|tRrgw~aqY5pgH#YviUtz84DX)mt zJ0g!xiMKthZWL1GN6VoyzkFuvNg;eO-ufd}w;xVz>^3YdBR!3Kk zc%Hf9w?0j05=cu0(p&4#=S}VY9?@P}Ln4^zgN~nm z*bdL1cb-h%jrQFkF_YaDNmd?s;15A5IhOZezZX`Fbc4W}1L``gKE?Rwz52U9Q9)Tu z*(`UFzQ-p^6Bz0#!SoqGxmULgJ>^d>dzG^!kr^~6EV&<)L)q|-j2be6~Lyxn}uOHYremU#gPiwlGOE=9eZTyHylsPSfyDvlP#dU!&!TI6Y4kT3Q3kGr<{weA~%n$|L^TlsYt zOMh)G#ZU?{!1U-J-CLhIjHsTF)iDUp2^O{a7a;!tQS589?N&DsEZQ^Bs@lfhScIBu zj)8pkR<|M;wc6vB0Gp0a)DL4j3uvIH0Zs#@s}iW9iUHCV3Gx`)$g628CW4{~7FeZ; zio8yZsaZB@B&vs8F3{QO6Dd;C&CV9@*|@-?@=*zQ^HBz_$U9UX9@2;FbJ2 z&X)P$9+CTYp0aA@rpd=FGgF-s#Uiq@ur@p!ety2q_Zgx{M7HEIH8Kr;&WwbMr&17W z(AP<|qpCz?m63F*`U`2d=h-YQW>U&}MJD30k`G92>$N7R$JEl(X{csL0aRR*YkfaH z)or)SZFsEanodvo&r9~r$~f*(rR^2_IxLWFn(QS@tkjaib@O=HevSHWNBaZrN}G0q z`8A`5A8kkS>PB1WF2=az3_j7&rHY_OrdgUJeh42=pyz@9+t@zx<(5MYXb(u0E&AEPcoj+azB?yR^rz7GZjPE1XLf(t48>*@V;ak%1*&$k zfWpIAKhXaGUt(TQ=j(l%?QM5X)vYxg56t>?iazrDS0>=HZaX@Piq%F>4?*YEoMxbd zaN-uOk=CXu>DE}Jj?A(nk3*>(eGlW@$-l$<_iS6M6Rk=TH0O`m`+CD$Hp)A4sFRzPaHK=OtMbVrG&7%+4X;|!S+#c1h6i)u9N5K`Smt?Yt2`2?hCeDxpaB~ z>Bpkafv2dFc%g(D12P4$2Up_X;6KONOqWv`mKgK)f2%!BmvTm_Bgk~q^5}S@*wnT3 z=(W_5$jk@oQGd#V zdL!nGXtxc$^p52O^dkJF>WM3MwLa>gfJ$IZbCpZp2}Q%V_zz;e$7`QpxQ}&;rYY!a z)~jOs!QJ z(ms7pTg%OJZbWU9T687uj4U}Ej8&9ql~gqfqCzad6aK2)f3AI@ZRSuYq>daoj)^R< z=eLBz!N;HZx&gPx$NFjIn{Z$>Qq+_$EgN6OF#`IKkD)%rdsn!!M2lg$pm@d=>qZ0T z{vL)qA3wFYTMP0|eLTO(&>fG;?=6FrN$I7op=c!mlo$JV@tbluQay?;ZMIHewJ|VP z4lr@31N{0K-CFG1{kMfgeR=Yz{{Um>)x!K$`7^b1bQE~K&s!clC=7A5(l&^iLBVEY z^at5jB~KqD?=5Y)5AjztM)bupdc$9NJ*(XK3!BT8MFTZu{&hV^_gh8m z&*0lc%*V(nC;0=`SbMjwxq$Ax6H13mDp$h9F#iB*Qb+i3eTl98+xF^2`dPO-eM^Eo zMC17$nQlPl)ug7I+>~+2?3&yQi4C!lWYAy zr@Uw8U%XDlL5puuaW98I68jNgHplm*Iw|Kso`l{{SX4IXPteN;O0#z{>1RkK_^VGu=7v^6;}p z4L*E&mo}egcB?o*ow5g)K~_(-_jXl@O7FK*^boCx1lXu2*be)CzqxuA&^i~|@=n8M zfC$Ue)PF9TPV(Jxjcu8&kbXl*#`hfG{5_?MdA(Do#&59oX4!VS(IHi*%RM;bGh53m zIxPfMbyG1Ov`e5GzNP;F9@~AyBlx#+0BMZS^q%U=XtjjAgaPT%i`jd7csnIVez+>w z5ln|sKt~~)`uh)E?(^<*EH?5ska(Zx)L*|(wpNyr;CcM|6Y^2Tj-+R2)nEt%n~*tC z{e8K(N}F67<#6BZ^c1v4o=qfq`g9i6XDeoRT51W|brGncwT}SUdk#gpNh#K-NIqa= zqoHnzO0fOC0-dEvyt0&#LANKD8(h;NY1A-eLHOiz{+#$bZJ(&JQ?ye{C;`KHl2LM(Znb~+Rb>+TmmvPmn*;vSB^)9V~)O*9S0ki;;%|F%S<+lG62fL zTFR#5>BwXC_OoyIf1c7oBHaQ0)}P_%+74#ExE<1iUzq3(tN2mSQ`9@Y)To7-t~^;P zv`hVdm-aul_v741;|gw+ig}^}n@I z`|r;zM~cW#`a%9)ocg&#P=nSq_<7S7Bkd^tB|WqMrp=UN*S$)k@<0+<<<*)W`0BI!_;mHNw;6y&1t0G4D`o z(la^n*QWPnSf!q7Y8r^ZUkR2mAh+Nv^ZqBEbiy(2S!2zuDXuNhZMBLxo8Ok+BQuWO=7!2fk)v+rN18JNPXMhSOuCibM|pRXG}LL?aKO;uqUXvZjajd ze6%%YdhCzeF=a}*RpJc4r&MU7{@%Oy4|Bb@F=$xzdI}!4HalBc0i!Ybj)MNt+Aw5y z6pciw3aYN40*ml1Z(^QR-rgO!wbfXYTKZR_4dZ5p@_kCQr%%08O0;uSV=7Loev)tM zxc-CsU)gUrN@mk{9x+qV{{SwdTSMS_8h*})YDzqw+{i;L1w}PW1EtNEN#^7q@VLLQ z3r}yjLP+@6%ly3yLDbY(XuSCxsmDD%b#+XwrWzb#Rw!LeF3#jx zK>ohKTU{W{hFP<*6wG(3c!Fot3%T-${*!b z)Llh`%TI#d+tOT=RMSgDGILPPPV=G`0z`^6B!62UYJIo+(esxv?y*_#TXYeEXxal* zQ_i}vUW++9m@T>X*@Tw=08Z!e175Z5+lKzZlgq$PzbCtZ@sm)s43>De1=MuB~(Uz zG|M=8hc>;2fO+;A=8fttk7l{Pl!efTi32pp9;FULwHKR@jWMKfjYhl!dK2V&-WTEj z08DIrKGee0*X^8hWT~iWDJdFiIN70&2$m%=s}2ty`3=wf_jSATES7f@mWke{H5C5< zSD#T=x%|z!oyth;r6M!r4@WO}b%3m*@?!C6q0@zq5Uc>?SpehM19{jt86y{)QnR7q zKuA4CTR%25Gm&>W$El}92Xk~j>CDzGJ~JOOO!5_7QL=y-i)v&3-=AnUal5>~NA#}G z{*eCwo2eomd$58HS1t(qNBQ~|cK26op0l8*ZSRtoaP9>}llUzQg9Ht0=&F$k0C8e3 zfAIEkceU*MJN<7o5hTNfq-WFk++*_SA9u|A#{U2-4VgR`4+)r1pRgX4IX>p9f{0LU zye&2+nO96n5{1yK$2vgwUB}%m*{p`yv0EjCAJ85D0Jo1twp^`j)0@lb8fX5NNBhs0 zKz`=ly_Z-EQe->{CECozZTT8cvP*0G+o=QYR}vE0;%WADE3?`*is=ywbQn})cg}J3 z<~JmzO^YH(>@=Qu7q|F(5!)nEny4q{TcI7jw%u#p6bn=G{{RO{ELPj4pwiD%Elk4N zoyjDhsjwd3xZAD1GSxnR>h$XF#EL3u1NQ#_#q>07d1opjidhv@Tmr_xTEvil-Yz|_ z*f#sCnaV`%qtF&n&~I}{MI<9teL%1HI$j!>C_i?pa5U<LY-oPe1MbqPV`biwfV*ql*oWW;&+e z4?&$rV&tN4EY!2q!oZ(EVtE!fHum4|1^^PY2Z5$KFnz8P+7OEW06*E*c>5NXqeznr zkbVHXaq1lKM;_Xm{@5SXLQ8&Uq_Sf?GZvFVSW=_q(=B%<(z=U+PtW;uF=9I73mPLxf&CyJFZ4Fxe@|mgzmhiV zT_!`SpmarZ%@-QVgVKX5hsWWulg~p=f^Qko=^Bd#u>SyG+11=O8$GX$W}rz*1H`Y+ zohP*1F7KuSR>emjK8s~$4?mcznWuuXq)6?iIO37O1lU+0{{S96klI+^?pGS8jpPT) zgnurE%ez?Fs+DC%QO2Y8^#)#n+}TpH!?&v95*=FSK?)0=TO?qDFqPv5Ap5hi$)8Ly4zA(VqK@uZcVRK!Qi*{JK?QI?l2Pe)n|O!ATHM-)92{l>Y!|tdji!w;X#ou;kW;BXi6b z3Wz@foRD#!PJ?%x&azA4?a^u{8o$`#&^f=BgK=(*F3HA7F}OCWhxoO0uc9Lmka?t; z&-No*vHrfo`;XD?`}MCb*tdab%mlI@BpGJ=Kn9;WbSK%8=G$(Qak%|S#!-DwlKqCX z>8rcDPaT}b&~d) z7Gi(EA8}{Ycx$J~dinJ?z|7}R^Yroqq{LVpo?9m!9wQxDUsF)wA*7?GlBRYy^s2`S zl6|OxXPi+%C(vZ{u6@qN#v?u4%NSlHuo(Q$9*&Pvd_CNGrl!kw1ww6XanT^f#AB$< zPZ{S-+HV~=BkBoeAJBUm?OdmOe1Y!U!i@UizFd60dV_h(-yOck#IWVSZe$qLMicK&>?mTD*o&M{{UUPPob{oSY&G z+2Dp+h+K=qEQlUh{{Ytn+t~A!wu#oxJB#(CkCF(bKHj3e-sB6(A-9mcYG^)m^RG*` zsm9U9WT~E>o-`L}XO&`&KMp*Aypov)1n^+=I6E*VtzoM@N}52?*6RX zH;$`xW8P)G;-O}(cK)h70D=8JzUsWy%bQ}+yII2omQ4If3sn7*8aC1%I>|=+E%|#tjFdkIytrWi*>_Z6;H6#^cZBm zO>Qi+nDNwf)XLtKP##A=;>>^FeLaxBxtG!t^s7qx@TWoueXrXs{{T`})IjMYk?cMF zUmG)IC#F^n{$+e-#czB4ZR|C=^Vc&pL_;rz8-X8ZMs~cb%kUZq!&A@7y#$%6jP6Qe z^|?B^i9Gr0C4W`915y6~i1!Qc8=mWXBYkDWj!&sH{hbUf?CdR2Brz(FA_Z&y$4H#E z7I&w1^Rs`4)C-UG{f6!={{T$L4NWt~zt5o+r0e1;8dL12=g@mgKxpQcN$NEEkLo<0 zKD>J&xP4$p8r1YHNZHp~-qlxTima=ZIedIWE?sgLlZ{I#BkxzY}rL%>tOo0ztr6S z0Ee+FMxuj1Bk9qBxn|&Wo`J37*V(<(RAt9erh-p4RR>k>eTnvNVzJsF33kT5UzbL( za|Bkf=$zD#pF#ac$2_!fiu{Bqs;nACKnVzWVgB3LfabWuqp2xX8dYXCl?{{TQgKH|&YclR4<$W}BRB`wH;R!KI<>GA;A{M|Uz{5IRZ zHg%^6eGwHzYpQ9e%;m7c=o!2abrd&_GmuJtI-S_*>cK zm%KZL!-Wn(=(>9kY^E9p*Ae?xy$1Dv9k$!CjdAdYVnu=gZ)*!5Vu*du-6^ZYH2Zoe zo0NU7xKmxSAIWLbe!JsdI)sUYaMLSWN09jLSX^9>W;WjGT-_fJE=L+?9Tg`cdrusm zBsS(I^j-x1eI+xU9Qf$cd2x$0959+4GN=~*(6z_=A7?f^{4R-9lS$!1dVb@OeZ0P4 zx-^mGK>mF*!L;I_P?6I|59Znek$>yO{j8UIo^w}nLHYD0+qqwt_Q=F`F)lbz4xX{Q zBEL5=f{KynYZBf#nm`x&n|nodzrkl1d8E_!nhvSC{^PSvcZ{R$r&6Zs%7~}&${S=ZPx;h?F4uQy5|P_n%r?!)N<$5FNY$FTe5bFzDFxbpO}JKQprLtOV@ z{?33W-8b5KM)PU7k&KQRSM8wSdKbQO?QC@<+e}hYM;w$?GOPHbQKk+wA<_o|-k)I) zVRu`ph2l=^L$z{iQ;dWD5ztfFt={J2>eA*$$*2U>l1^z}tKS`8wJDZns;Q1Dv{tZY z0N?TS`uoV+t4-cwqBJEMpR=j)t#00qFsC{GeFwN5v$V5&pD~}v!5vKJ_TXs%AV!Ah zE&kuwmvG%Tn+>Whw%xQU$#=dXE_^zksm`&z=O^CAYR%!3Ksg>DoDLmf+m=h~7sJ zRU$@;3tvo;DfpGs zR2wI2u6HL&hjHiQNv3x|WTK+BxG2?+AfMF#0ORi${p07Wjq`FlWsB0*2BFRv`Jda+ zFL7nFw-z=u1bj{EeL6GSyE}&4SofZGR;aNNLO;&Pi#0ViK3x+n$&tVK*CHtkl{J2W2%W&@A&=_Ku~ zX^MG#`gq4|syuBVnzKvGq>>l{06g$Lu`clUa+HM9ohDAahC!{2ykdSUb{+~<#072~dAfP_I z24pUk0=ViUNZ|bl{{UgfyM$hmy~NAw*Oqg8ANB-&Prno#I;?k&PI_>PPC36kk^Vo| z+G!9B^m%P@QJ$u&18=VYdrCz*GE-U}rostz(dpnHrH$|Y9_ZvMpE2lqG_*q`%F$qt zK9nVEr%~jqnbZKP9$6R#A4LI);D1kLg`h^LKt9TJHIBymSpNXEKew!@Lnsy#IKT8J z$B(ZE-kM}5Q6I~tNwm(ZPZ6`zjwcE};L9!D&(Qw>yYxwn^&jKU)X=7B-F(A4>tO$sJQL{iwkGAdBDpPxyNd z?pIFocv0}`OW3xQ+ijL<1!d#&9XMn&ICv`(HG!C`Ev*v~s2fu!<=91_RRr;45PMT($#B#=g_8E~y(sDb#^?7l6E=I&sN=luFbeYoxWWwYMjI8*|s zG{>1e6V2(o=iGVWP~J%*GpbXd1(gsrfENC~=ADmYi)-7wA%+7dhgePghFqJ?k8fa9NKP=1}m_;?<^T}+#+z4q4&-|<92pR@LohjAWsLI-)B=80fB= zyl9eNRG)ws-T`}`?=Jh#+o9!NPS#>Ap_o(_@~Nkn%=87{H=C{EabdTDpzx-D)H=o4 zUobM+7Ly6qw9A9T#7rN>rHMZJr7dl6MtF#SOWgZom3^ADv!(w4GdI-E*(qMdKW`IG zi|u)8+RXh$(K1YUgTtU-1Krz_mb6r6_a0Jnt5YO&$GKoQ_y?^!9^r=G%R~ zKcU#uMKEMMPuc0yh9I4^=uK#-u}GBg#T*dEp;9=NRS_4`p%i~l=sky)X|9{cxMIwD zr80VJs?EfJtX#h~3vE{XbNKe5V_`-(>r^$N>Q*I1MyVzMi~SD<=jrtS0B!D)J1b+W zloaY7XwZ`J$xf17AFBTVLHHibEZ%jat5esj1OtHRtM_i}hiqVEgC0CJRkw~dPf3k` zw121P+?mLGRGYrz<4u)AU$&iG3U_(+U3-UjWa;6SLzJsVdzRBYgY*8syp`KFSS4W? zg-H3YR4gl=i++E1R?8%Xsvc8zyE_tClm0(na(>;jTgIY@7Xyb5l*M%-8ZQoz6J@F^ z9lVmhkk=fOVBCIx-o1!pw2Bq&QPTTaq?NFEaqENWE2y3r4u2>7e?RPfxB(vz4up$S z7I^f{D7ioHzaG{^KpE(&-~vs0|JJAccXc$Bk57`Ih_gqeNgvZzlXIl~KgZuIF1aYI z+U?}1^z-Yx3%I))u&3M5W0KB&7g7B`>UjSEU-9hb*KhD(5y&e~K9k9C z?ApQUbF{k#97Rk^lU6VrDUo?2`W7C@H;!9-=t;G~9WJ)q3Q#}o=)}|SJ+G3dib{IO z7?oW?SwR>700Hzq<9YTi)(0yh5l@#MjpMq8PU`iUHzfoFnCha_f6Ibx!TKL;9j4{Z zSNU|YE&#%ubiCVJjVf2r;l=I#xcc*N_m5;(_6=-%vC@Gf94YB}O<()zB0EMuI!_+U zB#BDtrAg~eTGhH!&6B0CU$d$x;z8pffWIT^f3LEqwvr#ziv>-3^6Cw#dIh(}!mGsj zGI*e6rfbOXt;tSrbRW~$t7G4yxj#vFKzLO7^sY7}cX8<}wfkc)wX$?l&ox1%rl^Ue zjF!5hwVTp^!`Ytg$<|x7o5rdGI5a(0;tv`klpks8%y!3f{{S4tV{%xPr>&!?hB8}F zVh9$ITTjt};>X@F?i`T&ee9OEl}1yF;|GO5E`c{2Q!5mDFVD;J>GO1M1kPg_S^*QX z`r;QVPt@4`f5Y1wcFJsSyg*A2<~qLHX7-bYe&OZOX3AqIrKylLJWMW05+FaD733ds zJ-y}JE865&)BRpuNKs7s0oD6D40jG2YR`_&V(KBMifQO-q7jrpOS~i@K)_zai(A<5 zWWC*z<{P-&l?(wn_2|qNk|Mlo)iva6*BhFzp{hn-wXUdu8+`2EgH#bsa-(pJGEk;kcjQ67=OzxdnP3U1eSQdU$tYn*gz^j5bip@1j+9V24N zZ=SBmLtlrio*1E&NP!vTfr_@RC4PhbhqJb|<^F57Hn-8M7Zk24Jh~^k*-TXnz;$RJ z8h%{h`w|*$sk&u{6T2ZrNRn9sQ{?oEc`04(>i(#C_lkb%doj6k(S6@#9xb8Cps7LV zX~XU4hG=AksJuEc9lh6>&Hc5i2Z|Arri|2MYcwvkl|gSAf3AlD$DeU$C38LBE^f;k zGZoZ49clNk`BUMiYakyWhU zsaRN#a?aa-W4+sUP=YuRG4kp#-!?7BWt=rmjL?rxg$59F;mjrr*x7yz>w8`eGH%940d*#T??+WV!#n``8uq9 zfX>Nvx64UIM?-6SnC@3pWE$rkKJ7jCS%R%W6ln|s9 zJsf?n-BL9)MARuNfb!pfI3HhdrswVcsY->QHS+%eR(i0vij*R?=v>>K*I$y!!%X$C zEf_*2Nmvyk-$8zF>>av$eHD$biV*Ah4wBq$_N=;;X>q`T(l>fzal5xAQ&EnAR-xFb zlAQnzA^H=e>;68?c3aDxqS;dMiBU`w<@4xi%beA5utc%kJ4l20xBx%c=nLIFX}vb$ zef?e{u3TeYMXZ7*nk7PgCQSnC{x=@v4X2tm9m&3)3BZ^5NdVM(di=VVwr+Lh{q4S< zDTH#GcA8}TzFjBqnQDx5%PcO*ro)48^~bf>)(Lcsj(Kjw%V0Y<65D5WQ`4M*g`h6rFWe|w2_s|uulL_iaqi)3xN@!H?z=O$hBHr3 zx1htd#?3ju+X>J(uS9FRzAWyool{ek!qQEe+fqA7lhYxRqJ>GmikM>u(mtWb9`YBE zz1Z1z=n~fL#20IZ3_uP0dXl+oopycbExp5dQ~v-+(0xmzg>@Unoczc5Ed+lJF=bed(2Rfm`zT?a#ah}s>&wj+-s zl=L~Mp%nRiHB%&tBxSQa1^)nCP4yQS{2zEd?kBdp&m-=}ODf3)YaD=)N_@xoI*#x5 ztDUxD&=XHz^?xpxS>KFZ5xel&9asuXE=sXvmOQ2%zRs?isfMMUQGE;nAhMOQ_8r^( z+xG)zyp5jV+{GOMjm1F~$gdt9H*dc0Hd8E`wJ)LSwKu;;_77cUs_A2)sN6VJnf}W& zjHh|hdT`!@Q%@b*Hv{z!MgE4~@{3{T&RgbdB$;FoN=05LA#|USJVknzc1`PP+#*>S zf=x_@AOZGt7|XdA4JeN%NYTj?0Le5(9ZH|fZ(Ij$F;Dv|a5X$&r`Faa4`lb8nYl7Fk#YGG(Ou`Y+v+1p2;rO) z_Vg{&Pp~&MDI}>tWNjzNzA)Fl%P}8M@b(XyE@avz@YhiT=4sF>=V;#cxin21Po%9hjXt9dm+`GEb!d z1YhfO{>S?9?WSVn1D~^xP01lR9D2xMqge!17YfJH+O4Oa2;=?d-5p3HNd$cO^qJXY z?QEWvl)GVMfK*f0OQnXcC1L{oZO5{Ui;%CNqT|=1i5(TRI`!J-bK7=CYD(D{AvRWG z%6&gp)$JskcHMqI#v{q&PcE5~&f4Hn*N>k=2U+}|tJ;;RPq}Gjsi1NdswqG+L@#3I zKhOIE>aaJ+t91cIb` zNgQ6^?;gXm%=YbBHD{{=$ZEll+t4k#@|(8@S3LrTYFRaeaHW>tPwer3W6hr5Y`uU= zFw5oZ(e0XBNTNeRM?j5s4osxaQ(39xW-LJfU!Ff6$M%=P-Z2Vep=38RcJ z*=j4(b_`94sS?J-4MD#m{QFmaW4w-xGt+v*9X?d(>U8I3(#t$}jHIK)+E@1upn0(t zKTmNdF!I)k{;CxKS2*L)W0*GAnjaS0s#nvY=X3OS2Y9Py_UVe3D8NbNg-4ElJu5ON z*Xi}O{l8+j0u2_j7e(TyIp`y{^PS$z{{Tt2f>4?Y@%wr&yNd_8_IgP{kjG6E0LqmJ zjL|syU1b1|_T$=wyNg*ubg;n{r&1N3MW`Z>{#O=c3g~1tf)(lywMBt8#UHf8Kqg zxSmTk5?M+{eiD6tT?Q;Uk8;|i@Y$H=nXf@*M@$+KD#VwBlFF*L(m$ai+IhK}b!`*Z zSNT1D&W3jU?K3E@4LthIvv!a7Z!KvVyfq9Xnlep@Cf7gfdqKMH=W>T5Dk)z&e7bjY z-OlF5xGt70`f&uE~lrIdZfM;e3oAwQ|-rm^({$t(EwE#)qBQw)1<>rfX8 z{{SySeR|f<&1x%QcxYDuoPWjiS1IGH#MDPJq>xVo1`W!Ubo^hBauc##DOEa@@H}zQ zndga?gp*NFc-N!V)LW-(_Ez8i>StP>EZj+IX&fjsg&vlT{loU)?@ zxdZ|$Q;LsK(ujGg$9sijh=C~;Ad!zM)6dhR>G6Z)9YzYSi?8>UUz-b1>jobsP}i3g zQ6aFTo=3T89j&CF(0Jq@a?iB>=AE+UE??i9Rjh=Bb~MvmcN67K9b-Sc-rJ?(%f4(& z;m$jqK&WB-U+Jsm>D7VmO@^7+g>?alyT{}oMpp;a3YGj3&mQtKnLV*Pya~DNIXhwEc6O){{Zhc~^~k$?J||x862&xPhp|WCQZy(5)<=ZUZ8%z#m(I_%}Ys z`jHxuiuvQupi_|`EDa9~^_rVMkMhQqpIj z3R(kN^gqyHaodvyrU@gNl0FDveI!_1j&Jz(ET3kJeA&D>NHPIWx6`0ZyQJG*8d2x3JV+ZEpu``z`NeZakt&H69TM1D)lVwT)-xU83{EWT_RIwQlq4r z0BG4*9syQUaq9lJ{QE5Z+|nk7IX~d&+4t7UPOQ*HFiKv9pfFv;a{heig z#qK{Z@3yhrc)=W~s+Jfu`+7o89d^ydQ&&qIl2ZmNS4SqG(SY_P19BVuJ%*t}cQ=9# zmOi-XQkM{J527X&KM4e9*N0BYy|%Vf93Cp@Lln|sk%CH(YZYWak?p&UvvGz~6tQX? zLwvs8lf8xXZ&E5fdO>Ay_)N?*MKmzVlB*3x0XAX5C#=to|qUiSt|OK0>(OuiQHTt^)A-`0C@IQbIiQUb^a~5 z-b%^lo+EMnzsstw%eBG!w(uY)%qoNa4x6UR6<>VQCGg~aCI%;{Qc4BnL8#y=Sg_rvMJ*aDVm%c^-eEL6*I3c4+MIStLs>1E9^PF+^ zxJuNCtW49!(4ZgTtPl0??6UIz0BN=z(t^Xt5z`l2=F4C|R&lS50S6!I^5|y4byj73 za%A2p*jrMe)JHcqC;IyZUvKa*BHd3OC!n6=&Xxpzja$mTeJ-Tx*rk$?nTkXm4M5Yu zjC!3%`2PS;Y(u&-QK#Yj`VXFHQW=nO;n0VY-8)Za($mqSQPC_Bsucx1j>5pP3+g2O zectElH*GfiY;0+g#2Q!6q6n<_9mUJLF$A1ul<7MC*Fz~0;~Vu4q#vOo-pOa0{z;W%R+UtP zN)yoq=HFpyP_hLh&b=9}xr2T!^0mhMvbY*_yQcLic8T^^Y9 z>LA{3+6$%&agURHx}8zh(PXDd9|#4QapAE3xAcpDkF}EWTW(T@dp!EkkL6B_qvnb1 z*Gf%a&pGL7jO!X`bXyLfCN#Jhw6g6wdtT8Meo=$|PLPe(G% zzQliuwFl?XaIg4t*f{y-d`95G=BbM?i7R26ibg<9gQ*fHKbs$9@@)H_9tgyP*Vppu zOxu0#*=`q2-Md1^iBe5I&XiRD02_0!hl+zQvGB&cD& zX_Zvlz{^9zw6EpWPr2KAUmJ^C$J1JcC(G=wM8mRwm9FdG`>^gx9r~LZm9(t1$wwt& zjTGIP8VM7h@b@Y5$2squyR(}e&uUrJaCUFzYxeak>|c64t8ChTc0HHYNlZB)0y+tM zOZjTqWA9+Yebql%%i8%^Jw2Ld3Le0p#Ap@%Z+V`+eW8 z;d@3^1dI>$dUUP_i944a4m0(gH)}NwCd#$vm_*7(QQTSE1G2#f;j!Luzcwe!a`d4%We9u&-AfG|aVU zA4;_HRfS}|G?=Ec#LeT1G*@B=&?=A5wadF(T>&M% zxQw^rt!O-}(0&^R5-c;gt$31KAD>iL^S63$ZQ++{Om-ehDllZERgl_EEp%xe7yaYj zNP9uc`$f3=+1NCvBlFHW%ui?REi5f{w4tl>>XV{`Kxx zv)$G11JkIxblRB2V_KSY*RuM1A-#761|FX$kH)=qOfdb%Mo|qsK352@BMmcCxU9_QWa+{{W^weFXOoYTP!$+eLtAkbG@J zQ%;Y*Ke(}*3vf~5C)-(gaO)~Ya`e=uT1e9N^(t}&x&HtUc**@0=z#%Mq~A6Zg2U&yltOqlIfaBn8@eM=c&16R8>?^s62;GZ-X(WrXa5zU;ZTf zNc^hse~e9m^Xkib8xi!wxGC8vOQ0;#T-*An9_w>t=&EA|gQIP(ZBytxIt+$RLJFQN3*@Je7Uiy+vC(o^Bg|ji*L4Q=W0%APBiLHLvL=~$i}B9m710Z zJX6yGi^=+NZ>RYCt8Kg9>g{p4%2XVMU-NX8Zg$PMcu+RKeQm}fHHDiVi zd7Yb^+?yX}n_krolNOS)dTRbv=&Jt!c9v24ARy>}UAuy<+w}DR0K;ivo<0MJhNk}j zX=brjh^`Zf0B7gW4R0?k_a>3tl_RP9Yp3#?fz~W05YD#(N`nuM z1i$u->;U8Z53+t(ItjY8SYZG~rzRfO_;lVLmQp zqlsjx%F@xuLXwfktfw4{@pJDXxqH|>!Z_A@yM>NIKMp|ZHQasCv}Y=cbdO$_bblYA zqzG#_1w?|^WT%BwfNXhke!j+$`y*`{e~#TddeCv`hEH-Na(oDd53f#A^#<3Z3e!{1 zUdzs^smrOb;_i#FHd4U;2}%k8t_hcWI?FUTSmm2EWg#ejW2}jxdnQ0{RMc>jzwJN|+gG zaFsGSODHJ7T>U*nSbH{uXxy%sOb|1CfFnO|ReoXHV>+apNE}T?N9EI1A3*QSg<)#- zp~2B>1?sXjD4-!A-C>N9j;@Eu!--;81#idUAe$*{zU$DS4QG3fK1Z zIPLDJ*n46ao~@U3W)K2uD+Q=wkaPPKYIOZ?V)s79cAT}!dn{p?o4b+t_^O{e4?6Jv zeFQfiYTvh3ETh1S(Rh*b^yzXQ9Sa;$#}sHZtZ=HNXf0r(gFK2}zJma}wMh3y=W%08}4kx3EPz>ye2g%gd+j=4gmeDtZDpZ&6FQ zWpjx`6vR3+#-tN*$W|ZkzpuFGc;$KbDRpgNt9p;;pP1->vU5~hT7|teU)p|H=>tdc zYjM<)j!LU=&PD$Kz_0`Qdq-vMuKFlKfnFrnp;LRWVFMjK^!=SE=>9$I{gF{kSG#e! z4DXges|%JCF}r?bh8q?i;KttTx^nHGD|lyniRRWtC=D`wdP8yUUiZC3(d}}q01hLL zJik7TPSe_(YY#+~7%T=e6ptSbNka`hrEPV)qU!$uZheh*ow~_wP4%U?Kma1VdWv^l z^K-qQ!oHo{o;}15*&#l_cwe9ihlo<)l2=nr(`+Av&>#e7cyxCe*%~lXu<;q&6SBsw>ZCr^>s~! z!N8I5QYuPDeIxWFaVTa#;G*Z)&98QAD8xw`r73_1MDW;ed+geOQf5ASoA#5#^60Mb zpO_Rh=2}gcLMoq0Mab6%ju3z2q*Tl5Bl;F2*;V%c0CF>KfDd2xI+S)VYTj7ZZRN_2 zI#)IOeqOy4-Pzn5%XUc9W;1nlF|oSSB(DuDWSe?v;~_`;Vts?}udgq0JFyku4LXC4>TRf*&My}gH}j+Fp?xvA*ot=Y{1r^_GY z=yvNpt()F{8kI+;$GHdYWCR2KN?dd8m|=T{(uTbRx4q8WZ!Cg^#%a;a+P!Cj#77&< z4MgEZ@!z|fCnTwlJ_78)6&}{V)9L>A>~FGi_S0*m-1na{cz#_<)*DrYsZl3!13sM= zUE#Mob1USTMMYFisDxKlewSuAv zloc^du8n*CLl4ifY;f9LN8`YCsq+-4Mj)v`>Orpx9=rbV)J5t>xxWJE@IL_keY7kU zs;n@6T_l!4_^V!@alNCI#fx~BWfo8mJP+|7>w7P`8k5{i(8nt>mvsT2Qnmr2M)Bv&xjRtmvTVA^5)< zPd>)GacNV-Y*(fvyDBMCIuH9<-*N4jrNzl4FH53HJXcpDKdtTTQ_3D5+q?e&jR3*% zL(qG0l4)Tp3lKrAdP!^@;+2$%gUzzM%Bu=XEw3W|2BLp9`uh;`7RuJM8|ylSIimEh zZry~@EOI&V7Y8{%KBaFxk55n%N=Hcba;&^+2mD6^{5_@F_sJn*CIyH2dJtM~_m)x? zCsNbTp%RfqeCZGY+h9>Toho0ja}CB79#1$_;A1oI8m{_Q!D z+=U)OzP0NYYwXzQW`}X&q}PwgHRKD*#~~bPKR^$=a*p&Hh(Ofrj#|Vox zQ_^3q@|E;^j~LL%(XgmM9c~-~M;w2*_Hn=2K|PCy8i5%dDO=Xi!H*nMs{raA+ukYM z8%t(aPAl-4+^sDHk8|{|#M{2|Z!}G63{Ey66TYczT za#Rza1Qk5eSa_8TsX@puiMsm?DvNAYPXov zxkh}CQg(|ll2D}Gfv~;6AA*14J-5B6F{?L2ExNVo?en=Ut)Il^=$NHODU*L#0( z#cer!O$}%U*9M{iAz$_ck?)dx`?faA%{QA{;6m=X`5YhF*DQJV&GxQiyW7YrB9(;? z+tptG05i%r%~jxVDIr*=^2s0`GhGDBo8_aL<>0*}wB>+bie2fMvqDg{2? zsbZt!hSs6TQSN$$6%{n|EW#-+P{(Cdv zG1)!Gl&!9XCa9$HGC+M+5h<_>`2PTH?0L0aT5YzA15h`a^Y!Tj@sWndSTGw>NDEIq zCOL1$u1edHV1AzOxbDcnBrQ?W3H0F<)}1OR+A(C8$5Aw*GjXLjy~T&C`ui?T@Y{Ey z^o`^TK&L)^HU9vhO{0<_>gUQc5=rsY6kB~y)PIk)i|!`rY&5`#K;d3JC3)mRR2tWb z>xF;Dezq;%vl6z2C(Ki41e7xs;>BnPzPp%CSZHV0bto2PkiW4?pW$@$AYAt#RsZ zBcLAX%gqktV}s!T00+yd36GEu&F%d^9@=}LaZZ<8?30D5txwz5U$=P2=jm%7uOHLf zejt2wpxH|Zp{_cUO>pA(;Qc=~{{RndN-DiAuq=+W2DRx|PWqG!Tm69_>^+oAKx@>O zV>Y%UWS(uS{RDTK_72Sa!|x&I(g@df3NlSwJsPgdI`(4TRg+Up|46D zP6>-Fk_{_ss2~DPt6!gKXSrt`9qs#4TRyh{{JIdSv7R{fy8@bc0E-XyBiStMOn`&k z>F3ajszpG@N$tay#bRlta~v%&1gj9GMYy>?>-$?_Yj<@ZjY*;CuXx?8Hd{x%z94B8 z8i3*IE75GtRpmE@SJ`77{8P>rYOhz07_Vj#+k$@s+?inop34cI>~}8#>;9wGBXd^g z%s%Jt18L>gV-&Jc<;YY|FqFe|`B_7P+Vs@$O9WLF>lgu=%)zbt?A-qVvG!dB#^Jfj z(?-Q(KeO!UWw~tpq3!jQ7IzS=_lf{Dp=$pCANxHf>a$YS00n|yh2(#+_G1;Gj}Oov zaOR135vDvZr%|Dhk*NOw#EbiOo!WXwZ!@y^oO!BcQ)9w+XQEl&G;%P}0*P zDAKXT9DD=EEB+r}U@PuqytpLID--tl^!M)g5E=~hpjrxSMDfhY88Nscg&Ys)PxSu2 z%G!Ca6vheR)qams(M38JFng05EHR|gBu7r4Q2_Duwf_JE^R+Qf5$16Ob5Olwt*l`u_k=Y(cxdyXkR-#(jK&=)c3E&!1B;eOroL#`7iu#2}=s(Wv z_~L0M5-Wfit$UII;OhKe+wk3$qJz`u)x|ojUzHW;LXR_0iY z)WP%V(hVwltj*1ksi=7r%u0)Zw?FIH{{XP}l>1e@QK-gxM!?jbgDSY4gY#leqDki0 zzvtMl-GIR9$m%jH(@>Aca6sgad9{ZF>+M->T^?9Q0_p=NsVJqF>u+`FMH-e}JP%kJ zl$JV4Cg$SS;`|$*cM=XACX&-RJ%9h#tlh}p7_kb;O^>Rrl@!=fnu!#Z{*p;yZ}q+M z18yGZUmZ^(MyJ=V?KR!9c9gF`ZEar1&1BM_YHg~zdVOB0s^m7c?Qj>^;utr(3tty= zon64-Jo;N~u-w!1=r~rN>aR|jeXog@i%d~0a|p-<0oAAuP5q*^-LAxej{tHyStW!_ znpAWJ*NW^NVMLl_Qr?mog4^rrAMakrcK!wZxFuBj^ccE@?WCnmDbwv1S1BM2DLivIfx~)*i24EfAm9Dt*+EG37~Fn+DO@n=c}YtDpVhrN`N7{2e*FBqsVz4nM6_+)HK{5!T$h!J&X2@?&i>s7}O75l&(c-(tBa= zeZ$k)Hv6cmGCNwbP-|(0+|oVlD(Ua~THmOCNBECsd-lh+bEUGhMPj>*Ra^MKqJ4U# z)-l}2LMVDZJ8ODkw~i`0{8eOi6x9i+6gFifdZUp~(2wYUKH)pvn&)V`Hn)gFgXTE> zpDu`|v6|J!uz%J5$4t2>+8UNDw-@K=O^G)@OM7u6Q`^I%n3yt+IOrPT)yteFf&I$voqSpYmbsLt8N(!shbXN?t7vCPkF03~nK zMZTB%pLvnWSCYxLA~DK}e?E!#7?jFM6epmZz#}BYMaLjpgJH)b^XytA)F||)MNb;5 zP*fhA@mYGx8LpGawmg95;NPG2-qPLK!ElDCI#+2dvACmS`Sdf;oSx^#yd|TaEgDI4 z>b1B4o^R|CKhtejVaOqg^5M{?*`&Ebri64}cL(t;m$+h;9(;XW9ZFVF)WS?ojT>u8 zW08NM{{V09OWVb+_qQ_9Wk*u14nYSQ`ScRsBWr0i5tGCG{atUxPm_2)+uCvMjlo+@ zO}(*HsRYnS=%XzRX`w4=Lw=^W(%%lG=WQ*@q=>7MFG_Wba8(0YZHG zmiBGY9@tw-z&NG}$)`ZJF{pB4NPOy(E%X*YQ+rt7pJTg-rnVu-G&JZ+vuGfmn{vBm ztfT8qQQP&X)Rw>2{{W9_?Dr%_8hTwF(gVhX`E+0R?_b4NNh?Vj$_@A+Y6O0G{{VRR zBy#65JQ65UK&brsX8zXKae&2ewI|QhqLH82nQTCwdK77Cl(8zjlmPw*_Ok6;U%3yTSKvekWjzFkN*w^8m9 z0}&djnjV!n%+6C1!6pvSiw$Dr1yTJ+vg@ljZWmAjy*>*@+GOZM!)9_dG6^W=lsV*C z$Ud*A0DXOh@9k~Ut11SkN>N#}$Dx~J_BL~9SEQBnZ;_z#A(GAflZ=F07NQyNj*&^%`P@Wg1qP{BmM)D;yOUAO=qq+&}vZ z`^DaD8*7Q2e}#%6})NUx}+dXa{Yd16KO-chS5;`-vUN6irn%PcY*u>SxL zW&42G?(?|Cp}*gYK!0aMw^r~?{^Y1%v!OF?_MB9C3RrhGHmhyr5z|Fc4Ae5Zn}U@I z`fvRYuzu&s#(Q^trd7F%%@4)cV>e0Dt2*UM?zGswrzhj3Hpr z$Q?+q*Y&;rhu%5w+`o6S-Rnd#H?2sgQC{t}T-e+h<1HB+X^xORjq%$Jnv$b8wW;C9 zWMuv6X(L5iN~R*`(ezXPBZK+&E#kG z=$`M+g~Dg(=f>__0H?^ttg%-`8H%A83kQy(J71r{_b&4P0JzutT>b^86d--1btSVnHC9V;???u6Adg2DPdC zI=2mt-HDUJ(bfIKOp-*eWOg8(H{<hZO;455P*j5e>$fINS<_DY`F?o+iOnPVoL8l5LzK)u|XOfvXq0-(@! zUY{d70|D7vrkgE+!kkJ|(VA-4bdD#jsS*;CN|BGMt=9hlpLsFupDu2Ev9mR<<3Ef^ zs3W?A)2yWSkCS&ERN3W+ai7I$2rEOXgVXHjuGNb$0Fm?;y|4ZQ+@lfIk<`Yv&Z}Av z<=3e)St=I|M_Dv>An8^ic>J4t)YjIs3QroE{JKSPwp!eOxhSn)=#GWWwcPuY4Fga$ zM2;p+8r+r(z#I?uKEeB^B<**SeL|=nbm$4Ydv~(l%k=>Ql{KK~c-h^bTM8+hq{3sW z>}@M7~cCSI@ z&@NtCnkFiyoll|c>|H#+{ z9qqI$l4=~aRZKCpjV)xaQ46mZUtc5o4u9BtN4oM>#lBnkbHb=knt%`T=#JxWwU)Y+ z0)04iIJe1|b1}qoSYsT@ws(n@miF}>ECD~^>;#_IO}7*D6XLiBp!wRF9E3C-M*jd! z+c>;tMtC(ax;hU}H{=iaueB-2+woJOwNuZln_HFmPePR&Y^~*pTFM-qGEC8iYe*JN zUtV=v{p;9X;di~J?;iy%?{Q3>Dn3kh zA!Jxalr8;891r&1%Akt+-cJ@Itw*n?N84|>7ci=&z|_1CuSEB8ZnJtx^@;}Ss0YcMPdxV5Z*!|TVgX|@QVx)McQ zApZcU^j~|l>TOp401)%&2i|Xis?Jq36lwNzN_A;p(j45Cu&}q+*v869ql|cDkOxOL zvd8TqHUaZfc`&Sd#n_dhS`o|?6;i8RcYf^Zv9L0Siq6RM9V$+d$Iu&lhs<-^wuvxCD0-D*-t6ZghAaLafgHZv-Hh_d zH4Kcg>eJ(~A%CdT?`Gy#T@Zzw89m!Da7FJ8JE;g%>Sk(a)9Vp$oddqybJ_uc8V2&g0=*s2uxSipQ71R>K&d43YmDhIU z`hTeQAm%9S`H}&7XjC~LpALdsZLQYLF}0edR~0-u0P^_>vGs<-QtQ%3&|C6-!rQgQ z#?;yfsTeruWo-x5LTG4eGhT%qjk@yKxgx2cm62N7<0tmyADe^0_HE0Y(Y)-pBL4tw zW2Y4d;XmrnLEd25Hv9Nm&gfRYV~^$0sK;)ME_)rXAq+9qXtRb;LmL1{2mR~bL0R*c zFYlX4xZR^wo|GUcI*I=P1v-arHciiJyzuPgV;AAi54Sx7+w-jUCi$eOqO75TJi(Mr zPJ$T&HvzpL@jl^=`oov+E?Qe95xsjz{{SyTy^oo>lVX%y!zrlpV^NQ{s_x#O2e(Z& zbkyu>=gCn`F0`bdTysToO@xRDBmI7ThTijYM*2mzY3YDaSN8QjY+m;5Gg~Ztz%)9K zij`m6)@Jy_-Z&a%l1-D8tbq_6bSjlatW5HJmGK}ps47xqoR8*AH=Z6ee5 z4uW>OeeJw@2qdo>^%|P97c@bIOfFd5deoLA{{WA>v@G+_?j!w+8K73s1|e(M5}y z$dp3r#E+_x^gmx@w?Uv|q#s;#jpe*t(EiT3&9SzgO6@&8IVRejbg8%Jka-_YeV~tf z+@Lg$Mjw$qdOhoQgi8rVs;MGTVWi0jTYtCX+Y#HzA=9DQ{fDA9OX*nZ*46nQ zk$a1NZCn^*HbRzZ03<_9%QVbK&=DCU{4RZ%+j8#Za@4d!qs*|t=)-Q>H(SQjp_M`N zAJ3xgxjRF3Zkn~l?P#iLDVXWG5jaum@i}I&Z z7T?R38*E1FaA3#ze7`?lpElP-_7?A!DvGK)h*8Qj)#T-3NI$89HQW7-y`3Yy!0@)1 zOx5!dR@n*B32f<>Tj<< z@m3e;mNjV!?yiKKft<&?dbBy+HP#T%P5Q=CN$|QPxEJ@DjQ8s;H$>m*tKRhaEoJW zmxwU-PM+)RyOU_p>t8aoAK>YH-pTW%DdIrBARoftJ z^*Z=-G%CDwnpdH2%XFK1_aJh8dIon-S?8LG&L?+fXy-s#U8OQ9BkRHc0AcJ2xbn5- ztR`!FsWhRj7@Gcl4R+1`)g{q&Zj7hU4uSmqpC<4)Sz*~5n{DRua4Gv(w>=>6NpI{_ zNe8Qu`MNTyCG!#_W_qP@OE_7MN0_dz zfn@Z%Q$0%sQ~eH;&$BC^ZuwsBGPCZ!A|EUY{{Wk*4`=(l@}ALpx6)m`$zBUeFF^hu z=8t2v3H{~8kbb}Q>*pU+AH8H@(TZ2cL1q@$@!39=;fl6-EKwp!EpR`tyjSzj+2moF0TIo7qxJZtZN=Vk}v=t@ERZrkHzi&9`NJ~hHxd2 zwQ=ztKQ6Jl>vOs)Sd(A$-7IPGINEgvDmrM`5N@$Xj!60&s2;}qc(RVmREtI)e0mMb zeRT3^*5n^jY1H;xqavll0=58H{{Xi3hHdSTcyUm5WG+vN#~^iDUn_cFb7ZQjGx&;6 zxP;yOAwXcn4Mcy3xsTefajo{kmK(4kSmE@Rjxa|;FznFrU*eZ2?v zyG3iQa2-kNICX73H<|64$S5dwop$W2`*>kdNsg?mXrfSp%*e!|uOHgCyi(@#%2t8p z-o#M{;gBo#dh{pU?73n%!|uW~cH&3^pUbOo>ROG*Hr%C$u%wJ-6$yX25t&vydKRGl z3;zI9?-F;*t*UMENcLwU1Hjj`^^N?;6@*)qkFc>3o*rQIEmPEE@Rc#w?d+(ct4CJ7 z9NsNPkkHD-0W};&dQVqw8P;7B#UyGNf}}OI5AgOBo0z40j|y}u zzK5e2?AJ!LAoSai+}M#!@w9}<>OevXCBLQpov!P#EEF_m^sahcV`q3~sKE8|=qIbH zs;QCw){a7@i5g;JNBHnRKFeacd$}~*Le%*W^K?13NaK#K!2P`=@)VgVCDZnm3|+K@ zXxx%d&;f2q_Prp!cF*YvY)B2=N zZb2X6>|bNcyT!B%bAAL+o&btB`T8%pkuOoL>{Q6-%nJVAl^HLPy=jG&X!Yc>(nbQg z$5Gxeeuwv_Di8Ys>_*chijnD{Uq4@$NMiQyn6HnHfn)RTJq$fj+MRpYH7!So!{;8d zFbl^$6@|&L9#ky6{{V>=_HDM^ZAH8Xfu)e}3MOrL_at)HC|O*$)!$oo@e153KgrY$yYmIw6C6)c z21q=5Fj$WUKAJcwDWj)}6lsnnSkzbna=zx>zU?e+(%Rl7Ra#Ier78At>N~o5Zly0g zjMe${)4BI1;Gn1SW9ikS3UxX4x2N-`{rCHCWc+|jp3UAbzb<9JrOEt{ zL1Olf;f_mGh>8Pd20c9fMaQsgKJ9aK4XWe@9-p5=1IoL6fCxbZ@cDGG$L~0EQRr;~ zay?6^YQOl~>+D|_JAYU$hl@p!4jzBAqz|yR-gTUhT7Q?UlPP|5oAYiz+j~itCAjtA z0R&fvQ00hl-Z0;S2nUPb+pARX(lP2f@L2)O0Qf$;@RmKu(=7~@46sCj zk_h83Wg180{BP_fce`#|g#Q3jcQZ431|WXH)S-LIyC&PUuh0c)0ODz0jwUR~DWjA- z5@QT+&jefp{=@U^VPyu3b&+#kCbjA+xt2c_lz=p!F0#punyrE~i_Z7iNa;t)XT@`Tk$73PhKTHvrCH$T(s`S#7Uw{v&O7%!)4k~_R^j{^U6GYO^<6But{2PD8eaQCmP2j6a0A?8;mFOKQ{bLkNbpCxMcNQFF zDj|+|gF_oD*r+!*JagTZN~*-$n<(b@_7vQA z8+#DKI(>`Azvk#mw(J{*=*kfo{#+^N(K+9rDJrTA^gBu$A5t8I;5EMr@y37NFYFC- zx^5R_ssgL)=hUOK`)rV(68V9yY0)~|`@=Pxt(PI4%2iiXwax0LXGqkZL}(6`1MmR$ z#9k`6S0&i>C++(+m7)l(VpRjqpXKN|$nOeTW;U5g2m3A0AJ^IR7SqnO;a^|ybS8@2 zh3*2MXP-#y=W^k&)Wz!N79;eb8jtuYpYisp4phCqV-!`X{zs?M!QM(nGDSacL(j%s zb`!iRYIAKtSlE1BK#o_P3Pn>oon|z1!2|Qpu!l13vuu~~?Ce8G!%-uM94LQpK@M@; zrPyN@^%}_h$NLrP#B29{*4Rl+i!~H#w(}JtxRp3|)5B2?_{YzRb3sdV(qFY_R za^DMFFfLE*{JIUdhsuqyf{4M7sW}R=EuxtE6rKPr{@dTCedcKE4`7BmKA6+BhuYtwPt!Jqv6$i&)fEK|KbQ6{{;TcMi-+EP1!$_dd=c zfUN)&=t&f97y$sM%cPD%R`Qu5AQU&^{FLYG?C#tRI!ONjW1~1gr5n$w^u3phqKRY7 zIH%A885mi8KT=Q9-rAd%udd`TY2HtlP0O~)CvqOSKW=rz$H3XlS&{uEB$hQl(#Kc7 zCnfVzQTz!4k4p4iC5_seF(#ZdPLUhqtu|j~<7Id$>5{HU+32#k^+6VBYm@?A=cLBp?Cp!0ET z9EDz~ag_{6F2E8gq5AdFysi`MYuOxbYycHt+5%fOG-e|J5uTIo~#=QueW;v&x zI)5#%U_myu{{W}3&g#)bhE`r3c(4hnypKj74b?eZ)iOHPEK1{2J6*Xyk#BM3?>E|5 zniQyBJUS-7-D0=sQ? zSI@}wOgFoEN9qDRzi&Xa`zJGvrmmpL;%aGxftJ!nbg?4F%muCf$Jp67>noXKp4MR0 zBZ1-4=;MNA1}3OKpFkx?Sya;3wNzeM^vX)u9tH1yJ;^ciToc;;JekKI%cRM-sz_vr z%6Si_WN?4)P&n##a0luU7AQC-;uJ?;;NsOdXdN648$CFZeWS0p(Hy~;2B5379 zq=y6$FZDjxrSx}j2`$KA-4#d(dW`gB_D02%vv%zJX{vl4HM~_a4Qmts0Al|D*W6dW z^9pjVzb75sGv zt&nlpqf3v8SqJUHh%TT26>Z2r>wD)Fs4X9gPDwptWzEltApr3`1>Kj871#`fN(cN0 zl&$Q4v46+2ouc96yh5jo5AgJ9v0OA)%2%yv`>$aP?)%*JlvQy-Bo(z0kmpiJ@G%Xg zm;JZCm~u|~mVCQs6v|Gd2l731FO;s#TMe2@wIvrHZ$PHjQ$<|SRS~5LQg6o}kbgeK z+sEtM2anGqse5jMh3P_rme^GTd;Gg*)w0i};!DFZzdH&9Xn|us) z2H-gSv)04E1@|=79Rspuk^G35bf#7&4xFwG|P3*j{_4bZi$p|C-y(Dr!K9<;Q zO$?S=i9)M!a0P{r_JQ_MJ@k>9j*}2YNgXP(8xIdAK3cS?21bqa*? z+e-YpJpImZVG^k%Qlp}AyEct(-I)u6EiA{=FyI4k(%^fWc75L4a#8`K4uh9Fe3sK` zU`Vg0O<3hrQ*ZGT761F5(kozC0OR`{iXWpr{ZIsBeIq#KotAnT?&TXnH-H$`QR zVi(L;rPdc{R6waNK$IX{tJso9;Di46?52In3ExaSK3xkecIUK#Rz}wTzI{1my={vP)jXUCsPOq2zWXss*5JtK2njfud}I#$*qJ&2A3ZzPUwz*JsIxXk&mEJQcva529s-N`xP56kTn>r zJ9_Bx?Wrm%lk+u4K9z6msQ&<5`w~mI?fkGlj@T@>C*pi*{{U%MC6Ir=Bp-wxIy!!)rKQ@@H9Au=h?R#ioBDo+_V!UM_ZzI5^<&eiUuu_Y zG!*L;xxbjM_x<*5 z!O0>15&R?kole7I>oN|3V}Bn7oP(qR^*8pO_Tnf(IIl*$y|rI%46N8e#QAixsl-J` z0}t(i{uchcTiH0dX(gu)q=`1jEuhk?L)I;)wO@2@8fnr?$DCtjRzTvtO`!bPe5i2wFW3XntK850&37>AK$mCtPhwBdOli^a2|8 zhTc349P!&#Ln-2U7Ud)Qs5d{4aM!f{&r8iW!Q1bUC3McXFM_fvgT z!1#a5s*K0)P0=NBs#?he&mok^Ne!*q>~7y*d3$lPZAow86dGx!gV1#%p;840YTyr- zL-yG3ZqM6aZ!9^rtb#KcYCMHBH5BqF`l}EFDE|Nu*Y_Q6+=a@Upk$ukOCQ9fgZA{O z+S*E>vXFYPZlmuFzuB91qG`NXjmM6UPEQi@YeFsQtD%vA*AtL<`l;alJ>$1Has~eY zD(;G~R$EEF2LhxY;cr8pl1;amm{t+5!XtL^qk*aixw7@sPXcLtYP&={Ulf|t$%Aa9$9Zs|ajE0s?ED$fKo-92h>2vH&WwS?gRjNR!=}JPmDmt$Y)asq***Thw zth22o49(!CU|gyn%YHBZ9`Zw!dADTcYZbLrEI`Q~y;0EoAXlQpp7_zasmq`9qmy-v zkbl4v^tadCwYK}Evbb7`bd94Rl1D)HW21MKEyCkxn%5vKME!Uij(v^ndHZ6KDr5>z zoqE~uJXcNaWt3_=OPKW|2mJq0+9o8#*J)}#cZ zFZeclkFWGT-+pY_#~Dcf01rm-+$u339vv(({T;k3U=kQ1h_K`_`tkW-Kg4?_xc38M zhD{~esnUaasQf*D|Inn0;XxjzmK2i1R+0hw4hg-*{qqvhr(miLKF=<@mnjHpe7btu zU5~f6>X>S9vCJ5o%!1wp z-F<2T-5m5+x$d@;3c|v_Z%C>fhLNXHQS<`-lm59p-1|J9-H(vyo*SaT)b#5edn}we zQrvKOH{#z8F*6I5`dIyaL-Xt+cB;o!8R+IYJkLTKsFsl@LL^3AN=43~N7VZzRA5S+P}4mb z#K5MO$4M&K=_=MrYK2EqrCv8sZb`S({wwUp11-4{LQbX6O5;M5ps&xQh9bW;*BME2 zI3}Jh>2HG-*XTH-5rgaYbS~2O zl`c_}%TH&p4z2YE=)fQNudvMAmpm2yKz%>M{JKK>J4a9tQ#W?+#N;-We6X^K+80%i zjaMjtO}X}8wry9I`@~B80psPXO5f?vytCz9F~{M2 zheIcnZBQ-F`81>aa6I8V2N7cV8{yxJTnapRF_rtaBWcX6GDtH6s(Z4WlX}j1NU=)%u zfHn&8AE+RM?;v+wi*Md6n%;QUSfySE zBO{3F8%bxixbR3ihnH7Z@!#d17qW2F+h2J2BhRcW1gTP~qll`Ulf}ZAk zJAcbJ$9LIF8)}yA{2wfIGTS!7-LkX0IZN;;kW9t+d+LjjmiQ3wZ zg&ZkAkH@gbF7wUxvkkj<9wHnDBQ*K+G~4&NVUR;{k;12-KM|S8VHU9uU$CozH+#tHKYF9jPdKd{5fgoX?n75wTsmaGBRti73ibT~U5szAd^(+3r z^!979?(kZ-)88E}UMGjzI$aIg`zz&!N`L2?J8=A4?zc_H?`SGboDjH4J~N^5`*j%Vl52 zvyjH%XUnBFzl2&qZlWrxJIv~0g-_g*Cc1?-`2<5Hyb^b^nNbeCYJsZdTtHV zblczQw@9@uY2qNS=h2hvstO#3R{>jHZ=&i)=H}Ms{=jlbt~Ey8EMl&@cpjW6@s$4n zaTQfK@YF;@M=UpvR3PfQx)6T8(@%LJh{GW)r^t+SmEqTi0Q7hIf3b5^_?YRk)iYMp zQ?P|*oS7XEew}W4HvXjhfce*!tY*CNtyD%^G#IJ>0E_6N?`MMRF^xax=z7Z1ZN9+6 zOO4D@(&Q-WP>nJwmx=9lni&r$!|=fSk8J1Nxn}fFXCp?-niGckbf0dx-1&a#ZfsqY zsp0s4K8R;(bRJV^$x)EO`Eocn)XQ&GO&PuP$`|zy_M!Ot`^dgd_X^K`Rkyt!9mw-I zR{J{0K3V7M9rh6g>Ctes?k0-g>OB{4zRzv*Gh^#2XqfRL#Urin{gR(ga)ZHPxTtHW z)(e22?>prnv!`wv5I)%k6;w+N3D+1qST2efOO$HZ$Wkdt856r_1jer}q8 z_6FU(oZM_R-SWlOwm;}{8aL$Cr}#RK_pfHRTTNHIw{hZ+_tWwHof>_SEcl6OH-A}Y zpv&RpB3}&^P^+SzB15!A6q6fUjSK-F)7(AGHsa-9W#+4648!p<=|8v6^6DYoHu)8w zY~J88N$SF%&xckYuzNi>9zL0?sa}Gp#ujK~QW!{_5)aes?;rQBT02F^)La$TG#eOvdaM1X5~*EBSb;)ugNA6OOC1wmu=e zsaaizr~d#gjU|**#-FYK08mf|=kafODapR{rlf-PyBdJ8I38K*eAxZL+4ogdzo`C| zC_1kF!Lu?rD*B9WLXM)2wwc)^f~qMXln~asqku^Mhu%x=``xAevRvCRbZ^9@5Pvb$ zp>4HUU0R9kG`gMy5P!j*lp8mGZjFHcI78Lr8G(8^No7IxV-ugz_4<81mv37R*T1b~ zqD$n%{aNUnaOKN;q#>6}ubA>Z8BM+17%jsH5<-bF7Lo~7M2bh$AHn|sU)*iD@`mGM zFKMd!^b>mvow`huPxADqivh6reyHlG7FCwdy)EsCmzZZaNqWKq)(|wk?8uv znfJZ2h6w|xr)l))Jl&rdvXY^%+PRu)$PL(1Rh<&r-$ao(KhRuz8tq*F03MMZ=@AY5 zOT(!*W%pjfR2KWhMmFJ96(8|k19J5?^2JPJuAnHYY)B!O>OPJ=h(|VU7Yo@Tuct$p zd8c5!inh}V`W4CQY(007jn<-QV_=$3rIemNqo1#~pMQ!)(G_#ieb)D7@G0ZN?deTM zuu+2?vUqe{6(>nhIp*K%dnlD!X4E*IgBP=`l{|WGsO$_y9YLi`ib*mOhBcDa-BYA%_GztHid{{W4@KG=P>SV;wPI%GhcQih#6 zQCE=4Qg7-(5BWaO%^N81U)nm~)9W3ZvvlZAhRWKsWC|3Yqk~kxg{yxETa@EWe9U~v%=nZ|b zG)`VV1EnlIkwK3_o^hbxg4g{0IrqQn_2Z!+8gw0>Yhc=qK7B=xe?wg(eYEkio83eI z0FTgH+AFP^TXWu|SJ$HVwkl|G($^DNipoZ*TCp=9se2Ev2Twm=>+C&q<3LDC^nzGj zei4qJn{4elMfAoQjqDA%z5b)x1>Emf8U39jXp1na^%hNwf~!dcM@b;*{Wo4dzwch^ zH|xloJV&odp4~NkJp8lT!t;R>=ig{xkD=bVvEI7LlW*1ga-5pMfYrv7!%n{SL1N{0~WA}zu77Z0!lXK~F zt5v@T{5_V*u~8lOdTi0vajymdxqa#U%aLu7_VicZ7`rh5U<-MZvlZb#PK3VBQ+gr{LuR^xd z?+xp*a#Z_=5h$G`()Bcw1~m0C>b!{Ic?ACeQS6@QmA1R(FdD|*OgMr+$?MWB$78VE zZTt&`{{V{|I<+2y`9ZOJa+*9;)d{z^dd5V!ER?Gettz&6#nd&HVfoNKWBPjr-g5Tk zvN1`(mJ@*M#CikN8O*$uxNUNH*1)`8bj>TnrC)79vT1R(Sv}IQr5s3ErDY7n+S*0A zzvJ0NN*-YyzFheOL-zIVUY~Pk5m{u`lt1Cf%)%ttle^08#iqUw7O2lJ<1)ZcsY^01)CoE|=KzymL5%aEz(*`+j`}`+AJh)f{$E znktAK!y?FZm38!=t-aFr2ap?xg;(X!s!NDm31c-@6{nvYkzpp0-mnpsHJss5ap9{vTgx z=Z+%@nq|u8qG7De5m<4^`E>sPvbzp=r)cPEo<)uHy*=-L!+K9X&iOZ+H*Ky%Cf_kA zJ|ri~xTojR4c}w5yHe61A3Ah2L)r9lX@b5Wg|05#t^S6`+_@jTwo*s*yNqQjXiYi@ z9!I!V6I!vM;ZB%04mOh`2k|N^Iyk+D8c+J;`uiZ?>@7D%{pq%~QGq`%Ty(E(xR%w0 zmC!nY52PcCFTea8uY0) zkq{ZD%b^cw?)ki;mU?1|dnpU)=lY+=9?@ymtsdDv?-|}&k$LBjL0#Ey7S)#AcV`}b7@S$cD@N2}p4S#2C_n65@$V*VV&#Qo zJ9meonBY%QHQ(zq!ty`D-o}whX6hFQ(wHC1k3s1pyw#|# zJvjdWGt?}u6K-w_c_{OkoNi)@UrW>EsOhTWD%@K|La-PA01s{4?Rzfc8HVZz+;Hw1 zznS6I;oP@t2}HJ%ybLo{B!1c)bO>%Qi2nc{cT{ruwgxX5GlE5423m|f$nE{RQm{|) z{T{-X{?zg<{6sadj=piV4Si|Q=W6$d+&!g-g}6JQ{4d-O=6t_CivI5YUEO^nO*Y=% zJEIZ~vb6OLOJ5RxLWgBnKhos;iub=}Y^{NlYq@0ufN@{vj-}m~?;FeyMcpluQ^KPL zofN(0@Kdw!)ed%!^P|bb&y6ZxqKac<^k54pKI5y7S={#bDRBZ^0p_F2sf%d$yOwWY zQMg)|o6k)Mr>Xh$1#TaYza;ju7i=YNS`@hQ;p<_naz7`;O0oX{ZS1~XuF(x=wa^b7 zV!yMYrH{BAfw&zlAdkzt9S3u5uI`B%8lAbk>GWS#sv5<&Ad#pKX&Y|YB5h_gryP!t z#_7qj9Z}B{kMzKQEOgHn-0Y;73bfo5w>Cb1x{K@mLtE+XiElPYK>-vI<)^3P+<9RC z0A}%#@}cNK#cWN>TcFfcR>*%*4K$|z0F(NUvT1kg6>S#kEAn2GPrdAM0#q#r3=V|s zZ%n;HM%B`^YX1PNkMo*O;^+P2*>v0O)d`JgN6MWB?zzz+C+QFo!-qqT*4o&;pH8P2 ziH2&01o@GwBa z%^M~*o|1(vrDT#a#aI2IeU5fl=DWZ&M6kwqP-pGvDLszL4yjq3`V(H0d9Ag+bK?08 z&08a0{w0~>h##$%IP3?p6~`{__bH-Fr>WvU5AEsOTg{fvi5v=Z<}=c0_0I1U^$|gt zm84`MGW9Y88(W4ee`z4(9p5gl9DLmW0H32T-+N-xkpL^2E_wPL^xZ{kxEet4f+3Z(~wXNdBaL zI6qH&PiT3@;D<=ge2WAAUW;evZd-@7m}Ag?vC@xed`{0~Yebv3BNaU%U?hr^`DSfg zk*&Ui{fDs@*X)k^B@eke#GfPG{JJIFebL)tjIP?cn0fi0hIjZ`)KzeSJXt9u(hEuV zY`5aX=>z@XdmTsZL>8nNZltLB{{WMqn)|!V2_a~xDeKZIv*5PSpsGs!r?@u`2EG;# z6twkn21W+s_an0p$LHJc?at=Fn@f@()SixQ{qDb+ew%i+j(E=yRDUB*l~HY8{MmHz zQPJ;3&Cy0mMENyYXV9X+Jd%w^>G>zw7U9U=;@Bpec@k7S2_nCrOr7uB{prlDW?*y0 zM+*GDUVTp$o#KiNxeR2y0^>@L@i)={_8qz8&vL?v36DQ9(^@$iMj>Kh`E-`v^_}sP z+SzIRx?Ouj6z705H1$02VQIm<_ksZ3rm^c0(Zab=)7U^Tlmoel-jGFuCQfTAt`g zjV+M=6;!<(hM?= zWO7H=x&3vaK}^Xze9?oThg ziz_qGc@RlI?DXpIn{4PrRrv~V=)P5aVeDFZ@?fsRN2uM@)G!4}Cf2o&xeD9e4qTGl zh7VEl;qvIJNmRLY%}G5dztKkR+OVtUqo=E#fDB!pBG>h(F7#XV{-2>gs4)H_V=lq{&H(mvYNBOcEF-G?W!J5iF{7 zvWXB_*#7`S>`!m)$2;6x3y-A=gjX+0*QQUj+}$<5j*#}8gI_N$h8?}~TcGBqN{oi# z$VVKbTK@pJ44ZNFz2Zh5$6TAqoT+H!^QUPZKmo<{fQcp_Na*=eWrKgh4s34?Ci>vqR?>a zM)tdr_X|Wb^B`5YuV_LZ|+0e z{_WQnaQ#y5amGA@(}(TqTy2>meJagQx2y^CvwdVFrm5P!2fJ&V$QfQ*I-)8l9Qf#AyJLG|da{GjYk%&s34fWLat+H3f8oVW@pQ%ACC?E*Rf$hjK~jz$*&>06v6#y#bwmp(dsc9^12iSVGlFxY5a1?p;6hqndSiGzPwxozWsdYng68wTc;=ae9 z)gwF~;-IS!Iv$TD<>;>A@S|M%^mBIi$eyi(8A(Nu$i)=x7z~cOq}8MXNCW-r*|c%) zR`y>oJ^F~IcaTikscP^L<$(xt6^5kUIS9GlzNdR@C}noW0h zJbgdG*Q4alaExexD*e4D&vSINEYFVFab#vZhpwDQ8T?;cxrHUY@W0ZE^_LIdnChH@Q{Xm!)T1GYRa!r|Z|QcDL;m;dQDe{0?biyMCfRKt z`e?zY?HxZSx6(9q+%Kk+?0SDMKA?7X``qtNxfpTydUm&|@$?k2G-B5pbPL>nUwh_0 zbKfq?%<;g!x)5Xb4um|X%Ue`acpfB<2Mt8i^XRAMcbpk1_3i^*RMzCYjzxzS8owUG zKfE6HRi5ayloNNEgPfrwv z{{TmHQr7gF=G_huYmfx{esE{y)w`Ab!_X;O=6 z^h-A2^}AdJ_K`_~iHDa=03o#o8?zU@5D z$AQBBK$>(SQ~coV1p%Ykn;{WTC6hGd^KfpJ1MBqqdtYtucJDLze@hr2EnNX8_5)#7 zCGVs^l4Ga3Pn^Ay-{&^Q$%E)FwE4H>{{TSMA6`ALKJf2H32dLw{M{gLU^#Aup8ikR zgZbATVafc+?VQwRj~9iYNhKP8+(y{R*T_j9L^2sg&-&iUcRzBu#`Yf$*4=2>;A=za zj-Rsje~|XJ4{>@)2EEb>AGU|2if8^wZpjSM;5RfdNJDw*@X_I^?0%#gg-`434>iBK zd%arT7eL1cO+T5(=h4x(_Oohz4?J#EW{g|;f0LoNU}W>1e&;jTId+w6ONjMrR=GjF`-xE)QxABcngPJtZD7TwHg^c=emgyB()dh{mMe4*RG0Z+GU z>Qz9o^Q1~{I5)NJ{vO6Mec?HMn5Dg|&!^1bAJ3qiUe?|m$ug~fZ|vy9Uh1&nnELJ-9#bK7D3hqU$}?8L!(}3OcwZ8q!KSl%5l)Tv(oO{v3O9+mg9QcdXkC z>T8+?tv=Dwd-Gp2ZBmO(+7?D%QA+e0?jD|{+w*y8X;u7Wvbw1HUiT;bJ(BKxt0vm| z8ow@tmORk=j8r6pP8I28v}D`Wkc@6uA^bMER7V_g+C6`ORgdTVJ&HMR_Z937Ww~87 zyn_m-8oc@=-M@HS0dZ>|h`dOpPfBcWRqbqkVY7m&qPC`1465^Lffwo-SNi*}^)HvK zZ_eN(GsxKlnt}F@v!ZD^ivHpTf|_ZMv!Mcd8fc?Y9BQfslvn@_{{YtZcF6z-!%R~h z5*v$#eI<=gQLs4rdP>Rbr3hqZAunQ8N9Uh=*sNi7g`<;1eYki=<>^td_9 zd}7i~5`Y0QAw>_Pyxq}uct(3v;JT1 z4D>TnZAvkMqj2ga)#j{pAKKPEEB^o>{{Xl45WT$IuiHzX4nNp>nl>M6?Cd02Hx}`q zjd)WT0CZ0(cXr|2)v`8EAz4t*CE7}fU4gl~H>lWqCzi}=pzbG$JSo(h2G?m~hw0;0 z9z)FZp3ClvTpP3~O-)DDm46@7yXX% z)Z*t#unaHHB>w=m_F=c##>^P4O@EiKMvz;@0MSid0omQ=)Ug%wv%S~`)%~J=pX>V` z?b}L8R||ok_Igy2mOLU!E%w)y>_iqtTIO6W2qY2@arq95cb)FvWU+RQgUE0wb5s8S71i}&Xgc?yy6!rB zMJ*;H3x=Y!P{u;dQ!b7fiSnWsF0tbBP1~9` zL9K}-(w>67R!;ffdCm2@G8uVgo;a#!V@*!3+8}^7n4zRbIf^U8~H~jubu-(Ojd^Kei5fB2`rGRI!pbha!t52sQi$JSMlsS}m_k{geD5~2#%r5+}Xj+*klc|nqm zF<{(e4h7MFXJLuc5YDNYgYDYbS%`YibL?KK%1`8eeTH{!JK~uq`0{JRk4;=! zrNZbUpX~G~=l1U0?LD_!fyhA=iB$`Dq$<8zdW|GN(aD|(& z@bV+hzn2b!i6!36b}mqwCy?{6Rgc)cC%Jm}B|R-f4?P;l=AN-*Z4$x{1lVwG_4k&1 zt*+10GdMJ&@E@NJic@;pWS78%>TVb{&*jvdS6^eZ$Y|^0NM~SH zIc~QffN%XhzT5TPn^qSj4=+BHO?2@oU`+>?oj!d5J(t#-$7j~J+HLym#yzgkRpX#} z!CP=8R2Nh9`j2C-Uf*_o(jX_9Vvu}6nuPSS+jq8-9^wJ>uSMr8x_4&YkQBgVXsT7N zg0hxqOCQdFz+e4;avhe%v~FpnPL8DcFg-3yyLS{04Rgn%578ah+Z(?nO|>ySeVp7? z(lVrV7}^ShO#%~dC0$g2MG~*oncNR?=RNy($=fV1yI$@Q+aipD%2=O}txxRf9`L(D zSR2c`m5IF8qNl4I#q{rF)GT$|hPH-^W(wyS1ix@$2a=M^qQw6ITXF9g_YQUCTVnRR zY8gMLN>urE5ZrS%*k8keS(JVw!2O*`-F-*p!cQ%8)5$z>vuO*#WnaU7PqMwEot$5+ zaTW@CQ?&CbHzFv9Z_lD(oY<7;)2E068M&|odaMVz$8Y8*bw(u6j-*Ar1q0%TJ!IHh zLMnXKJhM}mf;j`oENmC*O~?5AZJGM( zYwXBUxyjAduiR8=^oWTbh(Z4V0qh~q9MU&!@ty!aop1;FdI@e@pVnL*B8WfF$Dj%g zu6MV|jAlNi9emnThS}Ci@B05Gu9yshRarn6R%#U;V(p~=mbQaOI5;i)I&;6dUpPc!N z>t;6b3W3D*axygu1q)~&MI3SX93NmAHw8;niD(ZFqg7XGxxlYgo$~MGY3sa8ZG1bg z_m6PFP>?nC8X8aYa@8_}`nj?X>+X8?W7}CdvixrQj<2P(ZA1^o{6PCXdY%2MO3hJP&g~<&u1A!XcVgevo=?2qw~9A)NWco9P!0eO zEOnaOHH;4`Tf($hz!dbSK|{chw34XxJ;tW(`V+6B>i(qJJ0VupSY5M@rLJq-zD7!6Epb2VNX_q&KIHQe=H7SQ zH?PAq(iI=k3_||^A&$8<&wRlrG;?L%@_rd+Vm`oVKal7--g^ofn(Xy$YIz}?OD*II zR1Ftv{{XFP`w{Fs#Uys{LuyLMx<)vh^d{MNxgocXD|RZ?6{p+PQtrLKiOFty!vstA zan{VLRaVlfzLIbG2i{`s8^z_O(-@VGrcC^+)<{}!7inUNsMM(ATI6)+Q%wdhAEura zMMScyf&Qk#~Zqf{GG4 zDZSrHzwA0r_N$>7>SeWwNObAHaxOP^l$bD+4YROcI-7+%#$z3 zkMMEm`pa>%z9Z@6)INNFG0}-`K;-;-|qW+d4g@^Wd`f==8W6JPMJXsU-rw)cz zyId2++$&CtpJWPc)Z)7#8Z^iK*Ce zV0j|<`hSnH-H$t)vKC>d=6Yt^V}{!*E6`z=#>I$l9JG=|exJD;t@!8F^ghKlcYj(c zj1TA1*%Hd#M~I|#5}Ov)ur%;Pc-Q<0zxDR?w?+r>oY3{8hTc`yiBNOU_0(H;t#>ju z19Ib@4a6PZnx*RJiYoel#BnGgRz&=*y+e`g2hJO(GHrCf+Som};!pu)KELUD2y-Fd zY^Gb?w6A~#8GQcUr*_{)Y#CQB5J7THjb)`hooNY=77Gmy|jBZO%h& zx`C_7hAZ>wy@PPL-G_lNqaFnGULf1~HHujnX)#>sVpWMB*|)hJw+m-&Du16tn@x)K zVP~y$(ST^OTk7y2Kmzt`JWcF&0-H3vN%^3L%bh3s!qj--l_>5iWK zRIb2<1e5p{AML%NFCyUMp=h?TmB)un^fLALS4+6G>JEn(H7XhOovmSPcL4KRtq~v08p{v(!YG}Ocun6G4$ya^}#g98fgMB2AjG1{{XGW zvQ2|++;_(}QZZDoMi-m4rq^n>7p9v274vF(bPK;?)m4^x!BE$-MgoDyA5KrP%Iqr> z01pm|Am;l=O?qf6iu8c4sNI{lAk-LR_HZ@C`8k1c8WUn6Ps>~B`1U2YU8`w>#=h@7 zL}SnG>MiDd)1P_9_4b}rD`g7`J=2X^SI@#8Z|FK$?f$0Q*p^ECnUgt`1T)oSU&;gh zbw>#rRDVxpm)zsH-K#-r1Q7WmV4uu%o0Ywe*kcXja z2B)WtASj5cETc`VN9niw(Dn(ql3Clnr26$MJ+O{38YoZU1L0q{s5Nx>ypp_f!yB0a zP~<5h{{U0R`yYFb^7ho~Ml>B1-R(bCjTFM6uzCZxM^@u7)YTcNtE`?v;*wXw#*2bM|QVvac1Q#-p^QB-@_v=)$=r)mMjpDvr1 zm~HM{$7U)AR>$#!Juv%P|00exrY{yhHa> z+|B!X-G8fmsT;ahfFLZ+cvMsTy+)hv>v?l4T3M-M=s5KM0Nmd?I@@MrD>lbWQzqih znBJ9l2&eI2G0q2%&rRe3s#$)kqy)W*C)yrJ_79l%d*t4^>HHXl4}ut(AJ4dOPqUB9 zqT3EnzPp#l-K5Zf;Xf6A&Z@4jH($8&wRxPqRQU|1R;p^s`pTvwBtv;PBy8AVi+S!%L)6msV8AgU^ z(Oo>TII&PozdVm*oXNM^?-mBmS5VccZZspO5>R_zqqVaTZ+Jh8BFRA&GV78WhgFlv zpHX0K&$vr;gzay2g%j5d`fz(Bh`wl&xM=@{ldo|JqE7fVJ z9){dU$-Tq3a8O}zm`rp@Nl)R1s&gZep>(VG*1(bdFYF0>?Pk}x?gwz(Cw4AsSBK@% zY@0>Al6a1KK+*TVX;)WN)=RkOkx3-Nk;JedC-lb{79PbDatA8IZkF*{s*o~#{{Y$P zSMK{09*~+y^YT3im>$gB8RF)@FC$7Ur3-{V)ZIt;k6~TUmNxqX{wo)6+2zwx+QAyp zR~;$Sa1u$Ggw6e0#gF(K`zu|#y|Ily%c6;sC&TJuZYT)1+qd+!f&Tzue|7!ZNuXnn zkg;X!i`G%q1FoHU;>AGzmmK@hjz~B$>5q!Oe!XLkj}@rA)bLnxx{x2I()ai0ySocW z-H*z>Rf?}c-(h5S%(%(%sI-E1ODIs64fs5J5%S%>?H%B{kg;F1^sd$^4PAk!mqh-c zB^1ojMvbMIas`cz?mf*BJIxpl$0MVt)pU$kryO?elg$+*l!XHjHQRts2KM@UVtt_k znbqn?N|jQzVL{jb(V+V5^m4-BT|o?3*b~n-_s#2T7e@uU?mX3y9)lc?LS}c;q~7{S zy}!fQs@f!|E#=UD?%B>odQCNK*YzDgQ(?u2(%#L4F}6;6Ae~+@QI50IWEdMgh(Dj{ z{wLdV+eYH4gVQEPTsKMzc@|{`GC!fe(4WZ`_ERioJTT85mB%<=K9rOc6HRqfbHM-` zk;mu!eU;oyBkm)i1(jsrYt#z=0J)-^sSKc7>HV+CKGebCO1Sgr&%=_KCcQslcMSB8 z8zii(r|WVL*XS+(02A!G_ic_~K~P7hN}-lWiTRJ`(CN4Lw;&VlDCP~Z>?RV7D;)GJv~wr` z@vln!rV$Jnl0 zfXJ#m!06?XXaV%<7EdQp0D5U%l?c;feIy_0Z)+^<(pLN}oI zE#9Fa zjz-0br)TX-T>eI2_^Rae#yx&8=E1G>{=5%xr!e??w(azmz^tfh52+mu_NjabHObvv zQ=k{Tem_CJOYfevG|=Vhm(7sEvj}N&Wrm|uO8f|?BkHEg$NC?vjmTc)w#t8Sb4WfK znk>9obHI-^`T2B7&0LgsSU-7ej1u5v#@I&(jSum3OzCo4o3Arb)8}!yYz9h>U}2i3 z8L4DhA~!7**0T@jRFHknliKZk$!KP?c&;LKqbMP&4l7S1@;T}mxR(C_V!IG-5Xl26 zrC1stv9bvK_;qF74f76P9X169$f1Z)tbz^r7B~L@A8GgL-@^`|nsBG5N2@q2 zGth^g>a0zDBUU{_=c1XS@d)t% zr%yXt8tt`GwK%%BqLEF>jQ-P+$XOyh5Pvrw(C*V)?os%6NFV$^x35D7f$$nvqd&Df z8jCEckItl2^=uY3oory3+mb>3C;j8xRlM@t)}-B863fPe%jMGITTgF7QsP^QsN_i_ zHeqHQa1FTn{{XM-BG*I`vVsWp9aKw0!-qn*Uv7Bt6*AD}DIKXQNV(IfBYt@2k6}(= z+M4%8&9hOL$ez4Uh$y%{48t|{G76kMS!!7uQ%9=m19PAO>?n5lrBatD3wrd-k*OLa z9cSK~`o9sk+Ol|7u9~JT1sO{ZQvFZ(4{A29Ri9=yc0Hu?QiAL%s2M!*w`nfk63QK*|D;NBekZreuwy-${8XzZeE$H? z)+GCn?T+Ki(Y4)yGg_}23X%R^k2WiK&rGqDmCEo>*2Lc63;W0Wt-Hh}oMd`=b&od| zG060Fq2u{Ia*~C+fh&t0D?!*{{UZPe@xIzrRZ1J%b?xH+Sc;bPC7_#jA$y= zSmlaolH^9gP0v1)Z>RVldxl8jpG2%epE1LudpqZeDJdX)x(4#Q7pps2f4iNVv#FM) z?-e#uIKIazMIR2qnl|PVui)=ZYoB1_{sLSCEIz= znE7&Xcd=Zspvn?iMLu84q7Cv};MVKv9DPRe*)=sA@2antw84bTz_mt4eu@kG%ACY_9Ti#MyK?daqgDomCQ|tc#7u2P^ zZ6(1v381Y&ujgO$bh+8Ry(D!pLnT1tO0ag)$VUe2_4Yx%a&2QWD%Xzz)OU7?5g|=z zXnjHZIP`Khp8Wgzc#76sFdmU7HawrFAM8iCcXis{&SIJkICZF@jzf{3Pq(20N{F&> z7^h(V9mSYPOpdaeG zeTufOVz(>ww+T-wo`m+B;9w${WDK5y-C~Afxe8e72q#f-a!=8LJbM%d5}-EiML)Ol z>vP|R6_2LOj@Q_E!qQYwr3FDZT8eui*K6t|eSNOB-Z!fe;iQGoc@gF5(M;D86RaHh z^d4q*(ZMl%Zc!_#4y`_~Txw0mpgo=0?rFI8+(uFU&OKT^(cN?~rk_7vpyP6tamWzK zeoxV^KA+?5>zhbjNdu>a_nm*APt|$KxLHJHnAuOH7d(zfwATB44^q^q=?wdw4Qrm9 zG26bbpHG=50>bA@SpNXF`fRz3NJ&H=j-wyYKEIF|M^^VX280=jcbh z#j@%02AvSyFbzfNwue8Nq@5~hYA04UYXZ!SKDV*<)#l%0DtL0L^iwJpHDD>w!GY}D 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

AQBfg2TWG5 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 z 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%0DQm?QMSOZh>9-B#&m3Qse(=KL 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 literal 0 HcmV?d00001 diff --git a/revive_node.sh b/revive_node.sh new file mode 100644 index 00000000..7028e8b7 --- /dev/null +++ b/revive_node.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +toBase64() { + echo -n "$1" | base64 +} + +AUTOUPDATE=${AUTOUPDATE:-Y} +SENDTYPE=${SENDTYPE:-null} +TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} +TELEGRAM_USERID=${TELEGRAM_USERID:-null} +WXSENDKEY=${WXSENDKEY:-null} +BUTTON_URL=${BUTTON_URL:-null} +LOGININFO=${LOGININFO:-Y} +TOKEN=${TOKEN:-""} + +TOKEN=$(toBase64 $TOKEN) +base64_TELEGRAM_TOKEN=$(toBase64 $TELEGRAM_TOKEN) +Base64BUTTON_URL=$(toBase64 $BUTTON_URL) + +export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL + +# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 +hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) +summary="" +for info in "${hosts_info[@]}"; do + user=$(echo $info | jq -r ".username") + host=$(echo $info | jq -r ".host") + pass=$(echo $info | jq -r ".password") + + echo "host: $host" + bas64_pass=$(toBase64 $pass) + output=$(curl -s -o /dev/null -w "%{http_code}" "https://$user.serv00.net/keep?token=$TOKEN&autoupdate=$AUTOUPDATE&sendtype=$SENDTYPE&telegramtoken=$base64_TELEGRAM_TOKEN&telegramuserid=$TELEGRAM_USERID&wxsendkey=$WXSENDKEY&buttonurl=$Base64BUTTON_URL&password=$bas64_pass") + + if [ "$output" -eq 200 ]; then + echo "保活成功" + msg="🟢主机 ${host}, 用户 ${user}, 保活成功!\n" + elif [ "$output" -eq 403 ]; then + echo "账号被封" + msg="🔴主机 ${host}, 用户 ${user}, 账号被封!\n" + chmod +x ./tgsend.sh + export PASS=$pass + ./tgsend.sh "Host:$host, user:$user, 账号被封,请检查!" + elif [ "$output" -eq 404 ]; then + echo "keepalive服务不在线" + msg="🔴主机 ${host}, 用户 ${user}, keepalive服务不在线!\n" + chmod +x ./tgsend.sh + export PASS=$pass + ./tgsend.sh "Host:$host, user:$user, keepalive服务不在线,请检查!" + elif [ "$output" -eq 401 ]; then + echo "授权码错误" + msg="🔴主机 ${host}, 用户 ${user}, 授权码错误!\n" + chmod +x ./tgsend.sh + export PASS=$pass + ./tgsend.sh "Host:$host, user:$user, 授权码错误,请检查!" + else + echo "保活失败" + msg="🔴主机 ${host}, 用户 ${user}, 保活失败!\n" + chmod +x ./tgsend.sh + export PASS=$pass + ./tgsend.sh "Host:$host, user:$user, 保活失败,请检查!" + fi + summary=$summary$(echo -n $msg) +done + +if [[ "$LOGININFO" == "Y" ]]; then + chmod +x ./tgsend.sh + ./tgsend.sh "$summary" +fi diff --git a/start.sh b/start.sh index 00699037..4e5c2ff5 100755 --- a/start.sh +++ b/start.sh @@ -183,7 +183,7 @@ createConfigFile() { item+=("webssh") ;; 88) - delCron + #delCron backupConfig "config.json" green "设置完毕!" return 0 @@ -2922,6 +2922,160 @@ linkAliveServ() { #showMenu } +keepAliveServ() { + if ! checkInstalled "serv00-play"; then + return 1 + fi + while true; do + yellow "---------------------" + echo "keepAlive:" + echo "1. 安装" + echo "2. 更新(须先按1更新serv00-play)" + echo "3. 更新保活时间间隔" + echo "8. 卸载" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + + case $input in + 1) + installkeepAlive + ;; + 2) + updatekeepAlive + ;; + 3) + setKeepAliveInterval + ;; + 8) + uninstallkeepAlive + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + + showMenu +} + +user="$(whoami)" +domain="$user.serv00.net" +domain="${domain,,}" +domainPath="${installpath}/domains/$domain/public_nodejs" +installkeepAlive() { + local workdir="${installpath}/serv00-play/keepalive" + if [[ -e "$domainPath/config.json" ]]; then + red "已安装,请勿重复安装!" + return 1 + fi + cd $workdir + + read -p "需要使用默认域名[$domain]进行安装,若继续安装将会删除默认域名,确认是否继续? [y/n] [y]:" input + input=${input:-y} + if [[ "$input" != "y" ]]; then + echo "取消安装" + return 1 + fi + delDefaultDomain + echo "正在安装..." + if ! createDefaultDomain; then + return 1 + fi + mv "$domainPath/public" "$domainPath/static" + cp ./nezha.jpg $domainPath/static + cp ./config.json $domainPath + cp ./app.js $domainPath + + cd $domainPath + if ! npm22 install express body-parser child_process fs; then + red "安装依赖失败" + return 1 + fi + + uuid=$(uuidgen) + sed -i '' "s/uuid/$uuid/g" config.json + read -p "输入保活时间间隔(单位:分钟)[默认:2分钟]:" interval + sed -i '' "s/TM/$interval/g" config.json + + green "安装成功" + +} + +uninstallkeepAlive() { + read -p "是否卸载? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" != "y" ]]; then + return 1 + fi + domainPath="${installpath}/domains/$domain/public_nodejs" + if ! delDefaultDomain; then + return 1 + fi + green "卸载成功" +} + +createDefaultDomain() { + rt=$(devil www add $domain nodejs /usr/local/bin/node22 production) + if [[ ! "$rt" =~ .*succesfully*$ ]]; then + red "创建默认域名失败" + return 1 + fi +} + +delDefaultDomain() { + rt=$(devil www del $domain --remove) + if [[ ! "$rt" =~ .*deleted*$ ]]; then + red "删除默认域名失败" + return 1 + fi +} + +updatekeepAlive() { + domainPath="${installpath}/domains/$domain/public_nodejs" + workDir="$installpath/serv00-play/keepalive" + if [[ ! -e "$domainPath/config.json" ]]; then + red "未安装,请先安装!" + return 1 + fi + if [[ ! -e "$workDir" ]]; then + mkdir -p $workDir + fi + cd $workDir + + cp ./app.js $domainPath + + cp $workDir/app.js $domainPath + devil www restart $domain + green "更新成功" +} + +setKeepAliveInterval() { + domainPath="${installpath}/domains/$domain/public_nodejs" + if [[ ! -e "$domainPath/config.json" ]]; then + red "未安装,请先安装!" + return 1 + fi + + cur_interval=$(jq -r ".interval" $domainPath/config.json) + echo "当前保活时间间隔为: $cur_interval 分钟" + read -p "输入保活时间间隔(单位:分钟)[默认:2分钟]:" interval + interval=${interval:-2} + upInsertFd $domainPath/config.json interval $interval + if [ $? -ne 0 ]; then + red "更新失败!" + return 1 + fi + green "更新成功" +} + linkAliveStatment() { cat < Date: Mon, 17 Feb 2025 20:36:19 +0800 Subject: [PATCH 061/210] to test --- README.md | 3 +++ start.sh | 13 ++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8136b103..93f1abd1 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st | BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选),支持#HOST,#USER,#PASS 等变量。 | | AUTOUPDATE | Y/N | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | | LOGININFO | Y/N | 在 variable 变量中设置(默认为 N),Y:发送登录汇总消息 N:只在登录失败时发送 | +| TOKEN | 123456 | 网页保活(keepalive)的密钥(必选) | 各主机保活时可不必输入消息通知参数,由 github 同一配置参数。 @@ -38,6 +39,8 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st 4.自动更新 serv00-play 代码 5.同步更新 telegram、微信等参数 6.默认情况下只有登录失败才有 TG 消息通知,提醒可能封号(平时正常不会给你发消息,发消息之时便是你封号之日) +也可以设定 LOGININFO=Y,每次保活都会做汇总通知(但相信我,你不会喜欢这个功能) +7.keepalive 保活虽然不做 ssh 登录,但一样有延续服务器有效期的效果(不再需要 3 月一登)。 ## 消息推送 diff --git a/start.sh b/start.sh index 4e5c2ff5..b4bd97f2 100755 --- a/start.sh +++ b/start.sh @@ -3000,7 +3000,18 @@ installkeepAlive() { return 1 fi - uuid=$(uuidgen) + read -p "是否需要自定义密钥? [y/n] [y]:" input + input=${input:-y} + if [[ "$input" == "y" ]]; then + read -p "请输入密钥:" uuid + if [[ -z "$uuid" ]]; then + red "密钥不能为空!" + return 1 + fi + else + uuid=$(uuidgen) + fi + green "你的密钥是:$uuid" sed -i '' "s/uuid/$uuid/g" config.json read -p "输入保活时间间隔(单位:分钟)[默认:2分钟]:" interval sed -i '' "s/TM/$interval/g" config.json From 42c4378214db752d424b84c78d3bc12ba890d10b Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Feb 2025 20:46:10 +0800 Subject: [PATCH 062/210] to test --- .github/workflows/keep.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/keep.yml b/.github/workflows/keep.yml index e3bca76c..d73c245c 100644 --- a/.github/workflows/keep.yml +++ b/.github/workflows/keep.yml @@ -29,6 +29,7 @@ jobs: BUTTON_URL: ${{secrets.BUTTON_URL}} AUTOUPDATE: ${{vars.AUTOUPDATE}} LOGININFO: ${{vars.LOGININFO}} + TOKEN: ${{secrets.TOKEN}} run: | chmod +x ./revive_node.sh ./revive_node.sh From 2c51c85b220343036a031945f7d2e4d3a6d3d9d6 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Feb 2025 20:51:07 +0800 Subject: [PATCH 063/210] to test --- keepalive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keepalive.sh b/keepalive.sh index 5addc005..be6a4ac3 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -3,7 +3,7 @@ installpath="$HOME" source ${installpath}/serv00-play/utils.sh -LOCKFILE="/tmp/keepalive.lock" +LOCKFILE="$installpath/.keepalive.lock" # 检查是否已经有一个实例在运行 if [ -e "$LOCKFILE" ]; then From 20be65bdb5bc145e1f40696af389d7a19f2c9355 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Feb 2025 20:51:48 +0800 Subject: [PATCH 064/210] to test --- keepalive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keepalive.sh b/keepalive.sh index be6a4ac3..3d86f501 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -3,7 +3,7 @@ installpath="$HOME" source ${installpath}/serv00-play/utils.sh -LOCKFILE="$installpath/.keepalive.lock" +LOCKFILE="$installpath/serv00-play/.keepalive.lock" # 检查是否已经有一个实例在运行 if [ -e "$LOCKFILE" ]; then From f1205aa6fe6577f6af44742e621969a69d7db9ac Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Feb 2025 21:04:04 +0800 Subject: [PATCH 065/210] files --- keepalive/app.js | 178 ++++++++++++++++++++++++++++++++++++++++++ keepalive/config.json | 6 ++ 2 files changed, 184 insertions(+) create mode 100644 keepalive/app.js create mode 100644 keepalive/config.json diff --git a/keepalive/app.js b/keepalive/app.js new file mode 100644 index 00000000..28e0e961 --- /dev/null +++ b/keepalive/app.js @@ -0,0 +1,178 @@ +const express = require('express') +const fs = require('fs') +const path = require('path') +const { exec } = require('child_process') +const bodyParser = require('body-parser') +const { log } = require('console') +const app = express() + +app.use(bodyParser.json()) +app.use(bodyParser.urlencoded({ extended: true })) +app.use('/static', express.static(path.join(__dirname, 'static'))) +const user = require('child_process').execSync('whoami').toString().trim() +const serv00PlayDir = `/home/${user}/serv00-play` +const keepaliveScript = `${serv00PlayDir}/keepalive.sh` + +// 读取配置文件 +const configPath = path.join(__dirname, 'config.json') +let config = {} +if (fs.existsSync(configPath)) { + config = JSON.parse(fs.readFileSync(configPath, 'utf8')) +} +// 监听配置文件变化 +fs.watchFile(configPath, (curr, prev) => { + if (curr.mtime !== prev.mtime) { + logError('检测到配置文件变化, 重新加载配置') + loadConfig() + } +}) + +// 验证token +function validateToken(req, res, next) { + const token = cleanAndDecode(req.query.token) + if (!token || token !== config.token) { + logError(`Token验证失败: ${token}`) + return res.status(401).send('无授权不能访问!') + } + next() +} + +// 修改日志函数,确保同步写入 +function logError(message) { + if (config.showlog !== 'Y') { + return + } + try { + const timestamp = new Date().toISOString() + const logMessage = `[${timestamp}] ${message}\n` + const logFile = path.join(__dirname, 'logs', 'debug.log') + + // 确保日志目录存在 + if (!fs.existsSync(path.dirname(logFile))) { + fs.mkdirSync(path.dirname(logFile), { recursive: true }) + } + + // 同步写入日志 + fs.appendFileSync(logFile, logMessage) + console.log(logMessage) // 同时输出到控制台 + } catch (error) { + console.error('日志记录失败:', error) + } +} +// 添加请求日志中间件 +app.use((req, res, next) => { + logError(`${req.method} ${req.url}`) + next() +}) + +// 清理和解码函数 +function cleanAndDecode(str) { + if (!str || str === 'null') return 'null' + try { + return Buffer.from(str.trim(), 'base64') + .toString('utf8') + .replace(/[\s\uFEFF\xA0]/g, '') + } catch (e) { + logError(`Base64 decode error: ${e.message}`) + return 'null' + } +} + +// 定时调用脚本的方法 +function scheduleScript() { + const interval = (parseInt(config.interval, 10) || 5) * 60000 // 默认5分钟 + const cmd = `cd ${serv00PlayDir} && bash ${keepaliveScript} ` + + setInterval(() => { + logError(`定时执行脚本: ${cmd}, 间隔: ${interval}ms`) + exec(cmd, (error, stdout, stderr) => { + if (error) { + logError(`定时执行脚本错误: ${error.message}`) + logError(stderr) + } else { + logError('定时执行脚本成功') + logError(stdout) + } + }) + }, interval) +} + +// 启动定时任务 +scheduleScript() + +// 记录启动信息 +logError('服务启动') +// 获取 autoupdate 状态 +function getAutoupdateStatus(autoupdate) { + return autoupdate === 'Y' ? 'autoupdate' : 'noupdate' +} + +// 处理首页请求 +app.get('/', (req, res) => { + if (config.img) { + res.send(` + + + + + + 首页 + + + 首页 + + + `) + } else { + res.send('Welcome') + } +}) + +app.get('/keep', validateToken, async (req, res) => { + logError('开始处理参数') + // 处理参数 + logError('接收到的参数:') + logError(`autoupdate: ${req.query.autoupdate}`) + logError(`sendtype: ${req.query.sendtype}`) + logError(`telegramtoken: ${req.query.telegramtoken}`) + logError(`telegramuserid: ${req.query.telegramuserid}`) + logError(`wxsendkey: ${req.query.wxsendkey}`) + logError(`buttonurl: ${req.query.buttonurl}`) + logError(`pass: ${req.query.pass}`) + + const params = { + autoupdate: getAutoupdateStatus(req.query.autoupdate), + sendtype: req.query.sendtype ? req.query.sendtype.trim() : 'null', + telegramtoken: cleanAndDecode(req.query.telegramtoken), + telegramuserid: req.query.telegramuserid + ? req.query.telegramuserid.trim() + : 'null', + wxsendkey: cleanAndDecode(req.query.wxsendkey), + buttonurl: cleanAndDecode(req.query.buttonurl), + pass: cleanAndDecode(req.query.password), + } + + logError( + '处理参数: ' + + JSON.stringify({ + ...params, + pass: '***', + }) + ) + // 本地执行 + logError('本地执行keepalive') + const cmd = `cd ${serv00PlayDir} && nohup bash ${keepaliveScript} ${params.autoupdate} ${params.sendtype} ${params.telegramtoken} ${params.telegramuserid} ${params.wxsendkey} ${params.buttonurl} ${params.pass} > /dev/null 2>&1 &` + logError('cmd:' + cmd) + exec(cmd, (error) => { + if (error) { + logError(`本地执行错误: ${error}`) + } else { + logError('本地执行成功') + } + }) + res.send('ok') +}) + +app.listen(3000, () => { + console.log('Server is running on port 3000') +}) diff --git a/keepalive/config.json b/keepalive/config.json new file mode 100644 index 00000000..3def90f0 --- /dev/null +++ b/keepalive/config.json @@ -0,0 +1,6 @@ +{ + "interval": "TM", + "token": "uuid", + "img": "nezha.jpg", + "showlog": "N" +} From 602349fc715faf8e15239b2241be064beb7ec50a Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Feb 2025 22:44:32 +0800 Subject: [PATCH 066/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0token=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/start.sh b/start.sh index b4bd97f2..413f2e4c 100755 --- a/start.sh +++ b/start.sh @@ -2932,6 +2932,7 @@ keepAliveServ() { echo "1. 安装" echo "2. 更新(须先按1更新serv00-play)" echo "3. 更新保活时间间隔" + echo "4. 修改token" echo "8. 卸载" echo "9. 返回主菜单" echo "0. 退出脚本" @@ -2948,6 +2949,9 @@ keepAliveServ() { 3) setKeepAliveInterval ;; + 4) + changeKeepAliveToken + ;; 8) uninstallkeepAlive ;; @@ -3000,18 +3004,18 @@ installkeepAlive() { return 1 fi - read -p "是否需要自定义密钥? [y/n] [y]:" input + read -p "是否需要自定义token? [y/n] [y]:" input input=${input:-y} if [[ "$input" == "y" ]]; then - read -p "请输入密钥:" uuid + read -p "请输入token:" uuid if [[ -z "$uuid" ]]; then - red "密钥不能为空!" + red "token不能为空!" return 1 fi else uuid=$(uuidgen) fi - green "你的密钥是:$uuid" + green "你的token是:$uuid" sed -i '' "s/uuid/$uuid/g" config.json read -p "输入保活时间间隔(单位:分钟)[默认:2分钟]:" interval sed -i '' "s/TM/$interval/g" config.json @@ -3068,6 +3072,28 @@ updatekeepAlive() { green "更新成功" } +changeKeepAliveToken() { + domainPath="${installpath}/domains/$domain/public_nodejs" + if [[ ! -e "$domainPath/config.json" ]]; then + red "未安装,请先安装!" + return 1 + fi + + cur_token=$(jq -r ".token" $domainPath/config.json) + echo "当前token为: $cur_token" + read -p "输入新的token:" token + if [[ -z "$token" ]]; then + red "token不能为空!" + return 1 + fi + upInsertFd $domainPath/config.json token $token + if [ $? -ne 0 ]; then + red "更新失败!" + return 1 + fi + green "更新成功" +} + setKeepAliveInterval() { domainPath="${installpath}/domains/$domain/public_nodejs" if [[ ! -e "$domainPath/config.json" ]]; then From 09b0047decc4c68b1acd18da684fa35e5c756b84 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Feb 2025 23:05:52 +0800 Subject: [PATCH 067/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0token=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/start.sh b/start.sh index 413f2e4c..3de4bcca 100755 --- a/start.sh +++ b/start.sh @@ -3018,6 +3018,7 @@ installkeepAlive() { green "你的token是:$uuid" sed -i '' "s/uuid/$uuid/g" config.json read -p "输入保活时间间隔(单位:分钟)[默认:2分钟]:" interval + interval=${interval:-2} sed -i '' "s/TM/$interval/g" config.json green "安装成功" From 1bc9ddf1e93729dba7a8f878f38da2f7b9a425c0 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Feb 2025 23:25:16 +0800 Subject: [PATCH 068/210] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive/app.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/keepalive/app.js b/keepalive/app.js index 28e0e961..422fb946 100644 --- a/keepalive/app.js +++ b/keepalive/app.js @@ -80,10 +80,11 @@ function cleanAndDecode(str) { // 定时调用脚本的方法 function scheduleScript() { - const interval = (parseInt(config.interval, 10) || 5) * 60000 // 默认5分钟 const cmd = `cd ${serv00PlayDir} && bash ${keepaliveScript} ` - setInterval(() => { + const executeScript = () => { + const interval = (parseInt(config.interval, 10) || 5) * 60000 // 默认5分钟 + logError(`定时执行脚本: ${cmd}, 间隔: ${interval}ms`) exec(cmd, (error, stdout, stderr) => { if (error) { @@ -94,7 +95,13 @@ function scheduleScript() { logError(stdout) } }) - }, interval) + + // 设置定时器 + setTimeout(executeScript, interval) + } + + // 立即执行一次 + executeScript() } // 启动定时任务 From 4178773cf42cdbbf602205c842f6ff2e28dc35a4 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Feb 2025 23:48:52 +0800 Subject: [PATCH 069/210] =?UTF-8?q?=E8=AF=BB=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=96=B9=E6=B3=95=E6=BC=8F=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive/app.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/keepalive/app.js b/keepalive/app.js index 422fb946..116bf59a 100644 --- a/keepalive/app.js +++ b/keepalive/app.js @@ -19,6 +19,17 @@ let config = {} if (fs.existsSync(configPath)) { config = JSON.parse(fs.readFileSync(configPath, 'utf8')) } + +// 实现 loadConfig 方法 +function loadConfig() { + if (fs.existsSync(configPath)) { + config = JSON.parse(fs.readFileSync(configPath, 'utf8')) + logError('配置文件重新加载成功') + } else { + logError('配置文件不存在') + } +} + // 监听配置文件变化 fs.watchFile(configPath, (curr, prev) => { if (curr.mtime !== prev.mtime) { From 255dfdaca072672e6b33bedb9c1f123d71c836ad Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 18 Feb 2025 00:09:20 +0800 Subject: [PATCH 070/210] done --- start.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/start.sh b/start.sh index 3de4bcca..9a39f884 100755 --- a/start.sh +++ b/start.sh @@ -3007,6 +3007,7 @@ installkeepAlive() { read -p "是否需要自定义token? [y/n] [y]:" input input=${input:-y} if [[ "$input" == "y" ]]; then + uuid="" read -p "请输入token:" uuid if [[ -z "$uuid" ]]; then red "token不能为空!" @@ -3082,6 +3083,7 @@ changeKeepAliveToken() { cur_token=$(jq -r ".token" $domainPath/config.json) echo "当前token为: $cur_token" + token="" read -p "输入新的token:" token if [[ -z "$token" ]]; then red "token不能为空!" From 0819608c05e2ecd9b99b9e641c391eee8e6d1495 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 18 Feb 2025 01:18:47 +0800 Subject: [PATCH 071/210] done --- .github/workflows/keep.yml | 4 ++-- .gitignore | 1 - singbox/start.sh | 6 +++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/keep.yml b/.github/workflows/keep.yml index d73c245c..4a967a0d 100644 --- a/.github/workflows/keep.yml +++ b/.github/workflows/keep.yml @@ -3,8 +3,8 @@ name: 批量访问保活进程 on: schedule: # 使用cron表达式定义任务运行的时间 - #github最小时间间隔为5分钟 - - cron: '*/5 * * * *' + #github最小时间间隔为10分钟 + - cron: '*/10 * * * *' workflow_dispatch: jobs: diff --git a/.gitignore b/.gitignore index 901da789..fe427258 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ *.log *.json *.out -*.js *test a.* *.swp diff --git a/singbox/start.sh b/singbox/start.sh index 314819f3..3a7cfad5 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -64,9 +64,9 @@ V2-rayN: $([[ "$type" =~ ^(1.1|3.1|4.4|2.4)$ ]] && echo "vmess://$(echo -n ${ARGOVMESS} | base64 | tr -d '\n')") $([[ "$type" =~ ^(1.2|3.2|4.5|2.5)$ ]] && echo "vmess://$(echo -n ${VMESSWS} | base64 | tr -d '\n')") -$([[ "$type" =~ ^(2|3.3|3.1|3.2|4.4|4.5)$ ]] && echo $hysteria2) -$([[ "$type" =~ ^(1.3|2.4|2.5|3.3|4.4|4.5)$ ]] && echo $socks5) -$([[ "$type" =~ ^(1.3|2.4|2.5|3.3|4.4|4.5)$ ]] && echo $proxyip) +$([[ "$type" =~ ^(2|3.3|3.1|3.2|4.4|4.5)$ ]] && echo $hysteria2 && echo "") +$([[ "$type" =~ ^(1.3|2.4|2.5|3.3|4.4|4.5)$ ]] && echo $socks5 && echo "") +$([[ "$type" =~ ^(1.3|2.4|2.5|3.3|4.4|4.5)$ ]] && echo $proxyip && echo "") EOF cat list From b35a651c39bf8e31bd4e5527f74fdbe38be78f34 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 18 Feb 2025 16:46:11 +0800 Subject: [PATCH 072/210] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E4=BF=9D=E6=B4=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 93f1abd1..b486accd 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st | TELEGRAM_TOKEN | 略 | telegram 机器人的 token (发送 TG 消息必选) | | TELEGRAM_USERID | 略 | 待通知的 teltegram 用户 ID (发送 TG 消息必选) | | WXSENDKEY | 略 | server 酱的 sendkey,用于接收微信消息 (发送微信消息必选) | -| SENDTYPE | 3 | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | +| SENDTYPE | 1 | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | | BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选),支持#HOST,#USER,#PASS 等变量。 | | AUTOUPDATE | Y/N | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | | LOGININFO | Y/N | 在 variable 变量中设置(默认为 N),Y:发送登录汇总消息 N:只在登录失败时发送 | From 870d5860d93b20b293d9fe863c42d01bd518bfe7 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 18 Feb 2025 16:52:23 +0800 Subject: [PATCH 073/210] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E4=BF=9D=E6=B4=BBkee?= =?UTF-8?q?palive?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b486accd..1f663f41 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,8 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。_ [nekohasekai](https://github.com/SagerNet/sing-box)、[AlistGo](https://github.com/AlistGo/alist)、[9seconds](https://github.com/9seconds/mtg)、[eooce](https://github.com/eooce)、[nrootconauto](https://github.com/nrootconauto/MrChrootBSD)、[nezhahq](https://github.com/nezhahq/agent)、[huashengdun](https://github.com/huashengdun/webssh)、[hslr-s](https://github.com/hslr-s/sun-panel) [yangtb2024](https://github.com/yangtb2024/OneTimeMessagePHP) +测试人员: [ryty1](https://github.com/ryty1), [fgr178707](https://github.com/fgr178707) + ## 免责声明 本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 代码、数据及图片均有所属版权, 如转载须注明来源。 From 9c989f47260c36199e8b1c16de28b7822991919a Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 19 Feb 2025 14:02:27 +0800 Subject: [PATCH 074/210] =?UTF-8?q?=E8=A7=A3=E5=86=B3keeaplive=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E6=97=B6=E5=90=8D=E5=AD=97=E7=A9=BA=E9=97=B4=E6=B1=A1?= =?UTF-8?q?=E6=9F=93=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/start.sh b/start.sh index 9a39f884..62db2af2 100755 --- a/start.sh +++ b/start.sh @@ -2970,11 +2970,11 @@ keepAliveServ() { showMenu } -user="$(whoami)" -domain="$user.serv00.net" -domain="${domain,,}" -domainPath="${installpath}/domains/$domain/public_nodejs" installkeepAlive() { + local user="$(whoami)" + local domain="$user.serv00.net" + domain="${domain,,}" + local domainPath="${installpath}/domains/$domain/public_nodejs" local workdir="${installpath}/serv00-play/keepalive" if [[ -e "$domainPath/config.json" ]]; then red "已安装,请勿重复安装!" @@ -3027,6 +3027,10 @@ installkeepAlive() { } uninstallkeepAlive() { + local user="$(whoami)" + local domain="$user.serv00.net" + domain="${domain,,}" + local domainPath="${installpath}/domains/$domain/public_nodejs" read -p "是否卸载? [y/n] [n]:" input input=${input:-n} if [[ "$input" != "y" ]]; then @@ -3040,6 +3044,9 @@ uninstallkeepAlive() { } createDefaultDomain() { + local user="$(whoami)" + local domain="$user.serv00.net" + domain="${domain,,}" rt=$(devil www add $domain nodejs /usr/local/bin/node22 production) if [[ ! "$rt" =~ .*succesfully*$ ]]; then red "创建默认域名失败" @@ -3048,6 +3055,9 @@ createDefaultDomain() { } delDefaultDomain() { + local user="$(whoami)" + local domain="$user.serv00.net" + domain="${domain,,}" rt=$(devil www del $domain --remove) if [[ ! "$rt" =~ .*deleted*$ ]]; then red "删除默认域名失败" @@ -3056,6 +3066,9 @@ delDefaultDomain() { } updatekeepAlive() { + local user="$(whoami)" + local domain="$user.serv00.net" + domain="${domain,,}" domainPath="${installpath}/domains/$domain/public_nodejs" workDir="$installpath/serv00-play/keepalive" if [[ ! -e "$domainPath/config.json" ]]; then @@ -3075,6 +3088,9 @@ updatekeepAlive() { } changeKeepAliveToken() { + local user="$(whoami)" + local domain="$user.serv00.net" + domain="${domain,,}" domainPath="${installpath}/domains/$domain/public_nodejs" if [[ ! -e "$domainPath/config.json" ]]; then red "未安装,请先安装!" @@ -3098,6 +3114,9 @@ changeKeepAliveToken() { } setKeepAliveInterval() { + local user="$(whoami)" + local domain="$user.serv00.net" + domain="${domain,,}" domainPath="${installpath}/domains/$domain/public_nodejs" if [[ ! -e "$domainPath/config.json" ]]; then red "未安装,请先安装!" From 6a98802defffb05b438c257d0b8bd43cd8412f8d Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 21 Feb 2025 17:12:56 +0800 Subject: [PATCH 075/210] . --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f663f41..118a8132 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st 4.自动更新 serv00-play 代码 5.同步更新 telegram、微信等参数 6.默认情况下只有登录失败才有 TG 消息通知,提醒可能封号(平时正常不会给你发消息,发消息之时便是你封号之日) -也可以设定 LOGININFO=Y,每次保活都会做汇总通知(但相信我,你不会喜欢这个功能) +也可以设定 LOGININFO=Y,每次保活都会做汇总通知(但相信我,你不会喜欢这个功能) 7.keepalive 保活虽然不做 ssh 登录,但一样有延续服务器有效期的效果(不再需要 3 月一登)。 ## 消息推送 From 2ac066174c6ab00d55885abd8cd3acb582df303b Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 22 Feb 2025 11:16:41 +0800 Subject: [PATCH 076/210] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utils.sh b/utils.sh index cb2c0fe5..83f6e696 100644 --- a/utils.sh +++ b/utils.sh @@ -187,7 +187,7 @@ get_webip() { # 遍历主机名称数组 for host in "${hosts[@]}"; do # 获取 API 返回的数据 - local response=$(curl -s "https://ss.serv0.us.kg/api/getip?host=$host") + local response=$(curl -s "https://ss.fkj.pp.ua/api/getip?host=$host") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then @@ -227,7 +227,7 @@ get_ip() { # 遍历主机名称数组 for host in "${hosts[@]}"; do # 获取 API 返回的数据 - local response=$(curl -s "https://ss.serv0.us.kg/api/getip?host=$host") + local response=$(curl -s "https://ss.fkj.pp.ua/api/getip?host=$host") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then @@ -604,7 +604,7 @@ show_ip_status() { for host in "${hosts[@]}"; do ((i++)) # 获取 API 返回的数据 - local response=$(curl -s "https://ss.serv0.us.kg/api/getip?host=$host") + local response=$(curl -s "https://ss.fkj.pp.ua/api/getip?host=$host") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then From cb60b3d84fcabb8af971249be90aeaff15f18ed1 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 24 Feb 2025 22:44:14 +0800 Subject: [PATCH 077/210] =?UTF-8?q?=E4=BF=AE=E6=94=B9tg=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive_node.sh | 10 +++++----- utils.sh | 7 ++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/revive_node.sh b/revive_node.sh index 7028e8b7..2c8cc92d 100644 --- a/revive_node.sh +++ b/revive_node.sh @@ -32,8 +32,8 @@ for info in "${hosts_info[@]}"; do output=$(curl -s -o /dev/null -w "%{http_code}" "https://$user.serv00.net/keep?token=$TOKEN&autoupdate=$AUTOUPDATE&sendtype=$SENDTYPE&telegramtoken=$base64_TELEGRAM_TOKEN&telegramuserid=$TELEGRAM_USERID&wxsendkey=$WXSENDKEY&buttonurl=$Base64BUTTON_URL&password=$bas64_pass") if [ "$output" -eq 200 ]; then - echo "保活成功" - msg="🟢主机 ${host}, 用户 ${user}, 保活成功!\n" + echo "连接成功,账号正常" + msg="🟢主机 ${host}, 用户 ${user}, 连接成功,账号正常!\n" elif [ "$output" -eq 403 ]; then echo "账号被封" msg="🔴主机 ${host}, 用户 ${user}, 账号被封!\n" @@ -53,11 +53,11 @@ for info in "${hosts_info[@]}"; do export PASS=$pass ./tgsend.sh "Host:$host, user:$user, 授权码错误,请检查!" else - echo "保活失败" - msg="🔴主机 ${host}, 用户 ${user}, 保活失败!\n" + echo "连接失败,可能网络问题!" + msg="🔴主机 ${host}, 用户 ${user}, 连接失败,可能网络问题!\n" chmod +x ./tgsend.sh export PASS=$pass - ./tgsend.sh "Host:$host, user:$user, 保活失败,请检查!" + ./tgsend.sh "Host:$host, user:$user, 连接失败,可能网络问题,可直接访问主页查看: https://$user.serv00.net" fi summary=$summary$(echo -n $msg) done diff --git a/utils.sh b/utils.sh index 83f6e696..1aac4805 100644 --- a/utils.sh +++ b/utils.sh @@ -18,6 +18,7 @@ red() { echo -e "${RED}$1${RESET}" } installpath="$HOME" +baseurl="https://ss.fkj.pp.ua" checknezhaAgentAlive() { if ps aux | grep nezha-agent | grep -v "grep" >/dev/null; then @@ -187,7 +188,7 @@ get_webip() { # 遍历主机名称数组 for host in "${hosts[@]}"; do # 获取 API 返回的数据 - local response=$(curl -s "https://ss.fkj.pp.ua/api/getip?host=$host") + local response=$(curl -s "${baseurl}/api/getip?host=$host") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then @@ -227,7 +228,7 @@ get_ip() { # 遍历主机名称数组 for host in "${hosts[@]}"; do # 获取 API 返回的数据 - local response=$(curl -s "https://ss.fkj.pp.ua/api/getip?host=$host") + local response=$(curl -s "${baseurl}/api/getip?host=$host") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then @@ -604,7 +605,7 @@ show_ip_status() { for host in "${hosts[@]}"; do ((i++)) # 获取 API 返回的数据 - local response=$(curl -s "https://ss.fkj.pp.ua/api/getip?host=$host") + local response=$(curl -s "${baseurl}/api/getip?host=$host") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then From 7a7e10e16fca0f7d29ccb21de1b1bc120950e4c8 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 25 Feb 2025 15:04:08 +0800 Subject: [PATCH 078/210] =?UTF-8?q?fixed=EF=BC=9A=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=90=8E=E5=BD=93=E5=89=8D=E7=89=88=E6=9C=AC=E6=B2=A1=E5=8F=98?= =?UTF-8?q?=E5=8C=96=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/start.sh b/start.sh index 62db2af2..168c8ad7 100755 --- a/start.sh +++ b/start.sh @@ -30,6 +30,7 @@ install() { cd "serv00-play" git stash if git pull origin main; then + git fetch --tags echo "更新完毕" #重新给各个脚本赋权限 chmod +x ./start.sh From 5c79071b063e74662d0c465c4f3ef29f4641b7a8 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 26 Feb 2025 11:42:02 +0800 Subject: [PATCH 079/210] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=83=A8=E5=88=86arg?= =?UTF-8?q?o=E9=93=BE=E6=8E=A5=E6=97=A0=E6=B3=95=E5=AF=BC=E5=85=A5v2?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- singbox/start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/singbox/start.sh b/singbox/start.sh index 3a7cfad5..158abbf2 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -52,7 +52,7 @@ export_list() { vmessname="Argo-vmess-$host-$user" hy2name="Hy2-$host-$user" VMESSWS="{\"v\":\"2\",\"ps\": \"Vmessws-${host}-${user}\", \"add\":\"$GOOD_DOMAIN\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" - ARGOVMESS="{ \"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\" }" + ARGOVMESS="{ \"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\" }" hysteria2="hysteria2://$UUID@$myip:$HY2PORT/?sni=www.bing.com&alpn=h3&insecure=1#$hy2name" socks5="https://t.me/socks?server=${host}.serv00.com&port=${SOCKS5_PORT}&user=${SOCKS5_USER}&pass=${SOCKS5_PASS}" proxyip="proxyip://${SOCKS5_USER}:${SOCKS5_PASS}@${host}.serv00.com:${SOCKS5_PORT}" From cc820b35ebd920467cb2b780425a6659449c14be Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 26 Feb 2025 21:19:17 +0800 Subject: [PATCH 080/210] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=83=A8=E5=88=86arg?= =?UTF-8?q?o=E9=93=BE=E6=8E=A5=E6=97=A0=E6=B3=95=E5=AF=BC=E5=85=A5v2?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- singbox/start.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/singbox/start.sh b/singbox/start.sh index 158abbf2..9b6b42a2 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -52,7 +52,7 @@ export_list() { vmessname="Argo-vmess-$host-$user" hy2name="Hy2-$host-$user" VMESSWS="{\"v\":\"2\",\"ps\": \"Vmessws-${host}-${user}\", \"add\":\"$GOOD_DOMAIN\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" - ARGOVMESS="{ \"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\" }" + ARGOVMESS="{\"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\" }" hysteria2="hysteria2://$UUID@$myip:$HY2PORT/?sni=www.bing.com&alpn=h3&insecure=1#$hy2name" socks5="https://t.me/socks?server=${host}.serv00.com&port=${SOCKS5_PORT}&user=${SOCKS5_USER}&pass=${SOCKS5_PASS}" proxyip="proxyip://${SOCKS5_USER}:${SOCKS5_PASS}@${host}.serv00.com:${SOCKS5_PORT}" @@ -62,8 +62,8 @@ export_list() { V2-rayN: ---------------------------- -$([[ "$type" =~ ^(1.1|3.1|4.4|2.4)$ ]] && echo "vmess://$(echo -n ${ARGOVMESS} | base64 | tr -d '\n')") -$([[ "$type" =~ ^(1.2|3.2|4.5|2.5)$ ]] && echo "vmess://$(echo -n ${VMESSWS} | base64 | tr -d '\n')") +$([[ "$type" =~ ^(1.1|3.1|4.4|2.4)$ ]] && echo "vmess://$(echo ${ARGOVMESS} | base64 -w0)") +$([[ "$type" =~ ^(1.2|3.2|4.5|2.5)$ ]] && echo "vmess://$(echo ${VMESSWS} | base64 -w0)") $([[ "$type" =~ ^(2|3.3|3.1|3.2|4.4|4.5)$ ]] && echo $hysteria2 && echo "") $([[ "$type" =~ ^(1.3|2.4|2.5|3.3|4.4|4.5)$ ]] && echo $socks5 && echo "") $([[ "$type" =~ ^(1.3|2.4|2.5|3.3|4.4|4.5)$ ]] && echo $proxyip && echo "") From 893a850d2189a4cdb60fb6156d3f258386a62f9b Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 26 Feb 2025 21:25:24 +0800 Subject: [PATCH 081/210] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=83=A8=E5=88=86arg?= =?UTF-8?q?o=E9=93=BE=E6=8E=A5=E6=97=A0=E6=B3=95=E5=AF=BC=E5=85=A5v2?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- singbox/start.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/singbox/start.sh b/singbox/start.sh index 9b6b42a2..70a9b353 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -51,8 +51,8 @@ export_list() { fi vmessname="Argo-vmess-$host-$user" hy2name="Hy2-$host-$user" - VMESSWS="{\"v\":\"2\",\"ps\": \"Vmessws-${host}-${user}\", \"add\":\"$GOOD_DOMAIN\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" - ARGOVMESS="{\"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\" }" + VMESSWS="{ \"v\":\"2\", \"ps\": \"Vmessws-${host}-${user}\", \"add\":\"$GOOD_DOMAIN\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" + ARGOVMESS="{ \"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\" }" hysteria2="hysteria2://$UUID@$myip:$HY2PORT/?sni=www.bing.com&alpn=h3&insecure=1#$hy2name" socks5="https://t.me/socks?server=${host}.serv00.com&port=${SOCKS5_PORT}&user=${SOCKS5_USER}&pass=${SOCKS5_PASS}" proxyip="proxyip://${SOCKS5_USER}:${SOCKS5_PASS}@${host}.serv00.com:${SOCKS5_PORT}" From 28e479c5e5c58d5361697fa081d8689d377b1fe1 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 5 Mar 2025 18:38:12 +0800 Subject: [PATCH 082/210] Squashed commit of the following: commit a277150505db317194f335c9859ba141cdffbb6d Author: frankiejun Date: Wed Mar 5 18:31:07 2025 +0800 . commit 175ffbd5f3bfffcf76855af3a11353cc5eb6d686 Author: frankiejun Date: Wed Mar 5 18:24:50 2025 +0800 . commit cb55ddd56f56d5091aa5c6203a7c20a3c9eb3cf4 Author: frankiejun Date: Wed Mar 5 18:22:21 2025 +0800 . commit 9da00e5332f8c8b68c981fcf75d9f735845f93d1 Author: frankiejun Date: Wed Mar 5 18:20:28 2025 +0800 . commit 3f251af98c0156a21d46dc48846315041467e602 Author: frankiejun Date: Wed Mar 5 17:51:15 2025 +0800 install alist from alist github --- start.sh | 23 ++++++++++++++++--- utils.sh | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 84 insertions(+), 6 deletions(-) diff --git a/start.sh b/start.sh index 168c8ad7..949abab6 100755 --- a/start.sh +++ b/start.sh @@ -1623,8 +1623,7 @@ installAlist() { else cd "alist" || return 1 if [ ! -e "alist" ]; then - # read -p "请输入使用密码:" password - if ! checkDownload "alist"; then + if ! download_from_net "alist"; then return 1 fi fi @@ -1735,6 +1734,20 @@ resetAdminPass() { extract_user_and_password "$output" } +updateAlist() { + cd ${installpath}/serv00-play/alist || (echo "未安装alist" && return) + + if ! check_update_from_net "alist"; then + return 1 + fi + + stopAlist + download_from_net "alist" + chmod +x ./alist + startAlist + echo "更新完毕!" +} + alistServ() { if ! checkInstalled "serv00-play"; then return 1 @@ -1747,6 +1760,7 @@ alistServ() { echo "2. 启动alist" echo "3. 停掉alist" echo "4. 重置admin密码" + echo "5. 更新alist" echo "8. 卸载alist" echo "9. 返回主菜单" echo "0. 退出脚本" @@ -1766,6 +1780,9 @@ alistServ() { 4) resetAdminPass ;; + 5) + updateAlist + ;; 8) uninstallAlist ;; @@ -2589,7 +2606,7 @@ installBurnReading() { domainPath="$installpath/domains/$domain/public_html" cd $domainPath echo "正在下载并安装 OneTimeMessagePHP ..." - if ! download_from_github_release fkj-src OneTimeMessagePHP OneTimeMessagePHP; then + if ! download_from_github_release fkj-src OneTimeMessagePHP OneTimeMessagePHP.zip; then red "下载失败!" return 1 fi diff --git a/utils.sh b/utils.sh index 1aac4805..03db1c9a 100644 --- a/utils.sh +++ b/utils.sh @@ -526,11 +526,50 @@ delete_all_domains() { done } +download_from_net() { + local app=$1 + + case $app in + "alist") + download_from_github_release "AlistGo" "alist" "alist-freebsd-amd64.tar.gz" + ;; + + esac +} + +check_update_from_net() { + local app=$1 + + case $app in + "alist") + local current_version=$(./alist version | grep "Version: v" | awk '{print $2}') + if ! check_from_github "AlistGo" "alist" "$current_version"; then + echo "未发现新版本!" + return 1 + fi + download_from_github_release "AlistGo" "alist" "alist-freebsd-amd64.tar.gz" + ;; + esac +} + +check_from_github() { + local user=$1 + local repository=$2 + local local_version="$3" + + latest_version=$(curl -sL https://github.com/${user}/${repository}/releases/latest | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + + if [[ "$local_version" != "$latest_version" ]]; then + echo "发现新版本: $latest_version,当前版本: $local_version, 正在更新..." + return 0 + fi + return 1 +} + download_from_github_release() { local user=$1 local repository=$2 - local package=$3 - local zippackage="$package.zip" + local zippackage="$3" local url="https://github.com/${user}/${repository}" local latestUrl="$url/releases/latest" @@ -544,11 +583,33 @@ download_from_github_release() { return 1 fi # 原地解压缩 - unzip -o "$zippackage" -d . + case "$zippackage" in + *.zip) + unzip -o "$zippackage" -d . + ;; + *.tar.gz | *.tgz) + tar -xzf "$zippackage" + ;; + *.tar.bz2 | *.tbz2) + tar -xjf "$zippackage" + ;; + *.tar.xz | *.txz) + tar -xJf "$zippackage" + ;; + *.tar) + tar -xf "$zippackage" + ;; + *) + echo "不支持的文件格式: $zippackage" + return 1 + ;; + esac + if [[ $? -ne 0 ]]; then echo "解压 $zippackage 文件失败!" return 1 fi + rm -rf "$zippackage" echo "下载并解压 $zippackage 成功!" return 0 From ce2e187fabf575241ae319528d4ddeac8f1ca2d9 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 5 Mar 2025 18:50:59 +0800 Subject: [PATCH 083/210] =?UTF-8?q?alist=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/start.sh b/start.sh index 949abab6..d9ad5de3 100755 --- a/start.sh +++ b/start.sh @@ -1756,12 +1756,12 @@ alistServ() { yellow "----------------------" echo "alist:" echo "服务状态: $(checkProcStatus alist)" - echo "1. 安装部署alist " - echo "2. 启动alist" - echo "3. 停掉alist" + echo "1. 安装部署" + echo "2. 启动" + echo "3. 停掉" echo "4. 重置admin密码" - echo "5. 更新alist" - echo "8. 卸载alist" + echo "5. 更新" + echo "8. 卸载" echo "9. 返回主菜单" echo "0. 退出脚本" yellow "----------------------" From 5832535f5c531ee4e231d776bf283b6896de73e4 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 5 Mar 2025 23:22:03 +0800 Subject: [PATCH 084/210] ok --- singbox/start.sh | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/singbox/start.sh b/singbox/start.sh index 70a9b353..0b1d4eb3 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -1,7 +1,7 @@ #!/bin/bash config="singbox.json" - +installpath="$HOME" VMPORT=$(jq -r ".VMPORT" $config) HY2PORT=$(jq -r ".HY2PORT" $config) HY2IP=$(jq -r ".HY2IP" $config) @@ -15,6 +15,7 @@ GOOD_DOMAIN=$(jq -r ".GOOD_DOMAIN" $config) SOCKS5_PORT=$(jq -r ".SOCKS5_PORT" $config) SOCKS5_USER=$(jq -r ".SOCKS5_USER" $config) SOCKS5_PASS=$(jq -r ".SOCKS5_PASS" $config) +user="$(whoami)" if [ -z $1 ]; then type=$(jq -r ".TYPE" $config) @@ -38,6 +39,26 @@ run() { fi } +uploadList() { + local token="$1" + local content="$2" + local user="${user,,}" + local url="${linkBaseurl}/addlist?token=$token" + local encode_content=$(echo -n "$content" | base64 -w 0) + + #echo "encode_content:$encode_content" + curl -X POST "$url" \ + -H "Content-Type: application/json" \ + -d "{\"content\":\"$encode_content\", + \"user\":\"$user\"}" + + if [[ $? -eq 0 ]]; then + return 0 + else + return 1 + fi +} + export_list() { user="$(whoami)" host="$(hostname | cut -d '.' -f 1)" @@ -70,6 +91,20 @@ $([[ "$type" =~ ^(1.3|2.4|2.5|3.3|4.4|4.5)$ ]] && echo $proxyip && echo "") EOF cat list + if [[ -e "${installpath}/serv00-play/linkalive/linkAlive.sh" ]]; then + local domain="$user.serv00.net" + domain="${domain,,}" + local linkBaseurl="https://la.fkj.pp.ua" + if [[ -e "${installpath}/domains/$domain/public_nodejs/config.json" ]]; then + token=$(jq -r ".token" "${installpath}/domains/$domain/public_nodejs/config.json") + if [[ -n "$token" ]]; then + content=$(cat ./list | grep -E "vmess|hyster") + if uploadList "$token" "$content"; then + echo " " + fi + fi + fi + fi } if [ "$keep" = "list" ]; then From 46fe1e3a783cdb0e91d409837d7d9db3615c3b9c Mon Sep 17 00:00:00 2001 From: chjs <461646668@qq.com> Date: Mon, 10 Mar 2025 15:35:35 +0800 Subject: [PATCH 085/210] =?UTF-8?q?webssh=E6=B7=BB=E5=8A=A0=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E5=8F=82=E6=95=B0--wpintvl=3D30=20=EF=BC=8C=E6=AF=8F3?= =?UTF-8?q?0s=E5=8F=91=E9=80=81=E4=B8=80=E6=AC=A1=E5=BF=83=E8=B7=B3?= =?UTF-8?q?=EF=BC=8C=E4=BF=9D=E6=8C=81ssh=E8=BF=9E=E6=8E=A5=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8Dserv00=E6=97=A0=E6=93=8D=E4=BD=9C=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E7=99=BB=E5=87=BA=E7=9A=84=E9=BB=98=E8=AE=A4=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=A4=AA=E7=9F=AD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 2 +- start.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index 3d86f501..280c5e5e 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -195,7 +195,7 @@ startSunPanel() { startWebSSH() { cd ${installpath}/serv00-play/webssh ssh_port=$(jq -r ".port" config.json) - cmd="nohup ./wssh --port=$ssh_port --fbidhttp=False --xheaders=False --encoding='utf-8' --delay=10 >/dev/null 2>&1 &" + cmd="nohup ./wssh --port=$ssh_port --fbidhttp=False --wpintvl=30 --xheaders=False --encoding='utf-8' --delay=10 >/dev/null 2>&1 &" eval "$cmd" } diff --git a/start.sh b/start.sh index d9ad5de3..775051d8 100755 --- a/start.sh +++ b/start.sh @@ -2819,7 +2819,7 @@ startWebSSH() { stopProc "wssh" fi echo "正在启动中..." - cmd="nohup ./wssh --port=$port --fbidhttp=False --xheaders=False --encoding='utf-8' --delay=10 $args &" + cmd="nohup ./wssh --port=$port --wpintvl=30 --fbidhttp=False --xheaders=False --encoding='utf-8' --delay=10 $args &" eval "$cmd" sleep 2 if checkProcAlive wssh; then From dbd330e9f8a588ff8acb06b38c38a112866db819 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 11 Mar 2025 17:05:58 +0800 Subject: [PATCH 086/210] hostuno --- singbox/start.sh | 10 +++++++--- start.sh | 32 ++++++++++---------------------- utils.sh | 35 +++++++++++++++++++++++++++++------ 3 files changed, 46 insertions(+), 31 deletions(-) diff --git a/singbox/start.sh b/singbox/start.sh index 0b1d4eb3..9369393b 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -1,5 +1,9 @@ #!/bin/bash +if [[ -e "$installpath/serv00-play" ]]; then + source ${installpath}/serv00-play/utils.sh +fi + config="singbox.json" installpath="$HOME" VMPORT=$(jq -r ".VMPORT" $config) @@ -75,8 +79,8 @@ export_list() { VMESSWS="{ \"v\":\"2\", \"ps\": \"Vmessws-${host}-${user}\", \"add\":\"$GOOD_DOMAIN\", \"port\":\"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${GOOD_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${GOOD_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\"}" ARGOVMESS="{ \"v\": \"2\", \"ps\": \"$vmessname\", \"add\": \"$GOOD_DOMAIN\", \"port\": \"443\", \"id\": \"${UUID}\", \"aid\": \"0\", \"scy\": \"none\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"${ARGO_DOMAIN}\", \"path\": \"/${WSPATH}?ed=2048\", \"tls\": \"tls\", \"sni\": \"${ARGO_DOMAIN}\", \"alpn\": \"\", \"fp\": \"\" }" hysteria2="hysteria2://$UUID@$myip:$HY2PORT/?sni=www.bing.com&alpn=h3&insecure=1#$hy2name" - socks5="https://t.me/socks?server=${host}.serv00.com&port=${SOCKS5_PORT}&user=${SOCKS5_USER}&pass=${SOCKS5_PASS}" - proxyip="proxyip://${SOCKS5_USER}:${SOCKS5_PASS}@${host}.serv00.com:${SOCKS5_PORT}" + socks5="https://t.me/socks?server=${host}.$(getDoMain)&port=${SOCKS5_PORT}&user=${SOCKS5_USER}&pass=${SOCKS5_PASS}" + proxyip="proxyip://${SOCKS5_USER}:${SOCKS5_PASS}@${host}.$(getDoMain):${SOCKS5_PORT}" cat >list < Date: Tue, 11 Mar 2025 17:27:00 +0800 Subject: [PATCH 087/210] hostuno --- start.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/start.sh b/start.sh index ea998997..214602d8 100755 --- a/start.sh +++ b/start.sh @@ -2453,6 +2453,9 @@ makeWWW() { is_self_domain=0 webIp=$(get_webip) default_webip=$(get_default_webip) + if [[ -z "$webIp" ]]; then + webIp=$default_webip + fi green "可用webip是: $webIp, 默认webip是: $default_webip" read -p "是否使用自定义域名? [y/n] [n]:" input input=${input:-n} From d80191a138a8533c133d62d6eaae5b1ecfa9c6f9 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 11 Mar 2025 18:42:32 +0800 Subject: [PATCH 088/210] hostuno --- utils.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils.sh b/utils.sh index c6159989..e6aef1b3 100644 --- a/utils.sh +++ b/utils.sh @@ -223,7 +223,7 @@ get_ip() { local hosts=("cache${host_number}.$(getDoMain)" "web${host_number}.$(getDoMain)" "$hostname") # 初始化最终 IP 变量 - local final_ip="" + local final_ip="$hostname" # 遍历主机名称数组 for host in "${hosts[@]}"; do From 28b4ff002adcca2dbf5791941d30ce964213dc92 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 11 Mar 2025 18:50:36 +0800 Subject: [PATCH 089/210] hostuno --- start.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/start.sh b/start.sh index 214602d8..c4451875 100755 --- a/start.sh +++ b/start.sh @@ -1841,15 +1841,15 @@ printIndexPorts() { delPortMenu() { loadIndexPorts - - if [[ ${#indexPorts[@]} -gt 0 ]]; then + local portNum=${#indexPorts[@]} + if [[ ${portNum} -gt 0 ]]; then printIndexPorts read -p "请选择要删除的端口记录编号(输入-1删除所有端口记录, 回车返回):" number number=${number:-99} if [[ $number -eq 99 ]]; then return - elif [[ $number -gt 3 || $number -lt -1 || $number -eq 0 ]]; then + elif [[ $number -gt $portNum || $number -lt -1 || $number -eq 0 ]]; then echo "非法输入!" return elif [[ $number -eq -1 ]]; then From 14f940a2b73604fa9164cb7ac19324672046fd63 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 11 Mar 2025 19:07:54 +0800 Subject: [PATCH 090/210] hostuno --- singbox/start.sh | 4 ++-- utils.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/singbox/start.sh b/singbox/start.sh index 9369393b..b7d41e1e 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -1,11 +1,11 @@ #!/bin/bash +config="singbox.json" +installpath="$HOME" if [[ -e "$installpath/serv00-play" ]]; then source ${installpath}/serv00-play/utils.sh fi -config="singbox.json" -installpath="$HOME" VMPORT=$(jq -r ".VMPORT" $config) HY2PORT=$(jq -r ".HY2PORT" $config) HY2IP=$(jq -r ".HY2IP" $config) diff --git a/utils.sh b/utils.sh index e6aef1b3..6ee6c9a5 100644 --- a/utils.sh +++ b/utils.sh @@ -183,7 +183,7 @@ get_webip() { local hosts=("web${host_number}.$(getDoMain)" "cache${host_number}.$(getDoMain)") # 初始化最终 IP 变量 - local final_ip="" + local final_ip="$(devil vhost list | grep web | awk '{print $1}')" # 遍历主机名称数组 for host in "${hosts[@]}"; do @@ -223,7 +223,7 @@ get_ip() { local hosts=("cache${host_number}.$(getDoMain)" "web${host_number}.$(getDoMain)" "$hostname") # 初始化最终 IP 变量 - local final_ip="$hostname" + local final_ip="$(curl -s icanhazip.com)" # 遍历主机名称数组 for host in "${hosts[@]}"; do From 153ffe0636f330edfd829850605fe951c9a88f5e Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 11 Mar 2025 21:11:20 +0800 Subject: [PATCH 091/210] =?UTF-8?q?=E6=94=AF=E6=8C=81hostuno?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 118a8132..db6b9160 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# serv00 上的一些应用,包括 argo+vmess/vmess+ws/hy2/socks5/mtproto/alist/哪吒探针/sun-panel/webssh 等, 自动化部署、批量保号、进程防杀、消息推送 +# serv00/hostuno 上的一些应用,包括 argo+vmess/vmess+ws/hy2/socks5/mtproto/alist/哪吒探针/sun-panel/webssh 等, 自动化部署、批量保号、进程防杀、消息推送 💖 如果你在用这个项目,请给我打个 star,好让我知道有多少人从这个项目中受益。 ## 前置工作 -1. 你需要有一个 serv00 帐号 +1. 你需要有一个 serv00/hostuno 帐号 2. 首次运行,无需使用面板,选 1 安装 serv00-play, 它会自动重新登录,输入 ss 回车进入界面。(以后都是输入 ss 回车进入界面) ## 安装说明 From d2d29ccd991f604cba92f23f964fbf4becbeeaef Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 15 Mar 2025 15:57:10 +0800 Subject: [PATCH 092/210] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index db6b9160..e3be6e84 100644 --- a/README.md +++ b/README.md @@ -101,3 +101,7 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。_ 本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 代码、数据及图片均有所属版权, 如转载须注明来源。 使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。 + +## Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=frankiejun/serv00-play&type=Date)](https://www.star-history.com/#frankiejun/serv00-play&Date) From 416075b8e771ec66db119b174ae1125adea03dea Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 15 Mar 2025 18:35:29 +0800 Subject: [PATCH 093/210] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=8F=AF=E7=94=A8ip=E6=97=B6=E6=B2=A1=E8=B5=8B=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=80=BC=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/start.sh b/start.sh index c4451875..c28f5594 100755 --- a/start.sh +++ b/start.sh @@ -731,6 +731,7 @@ configSingBox() { if [[ -n "$hy2_ip" ]]; then green "选中未封ip为 $hy2_ip" else + hy2_ip=$(curl -s icanhazip.com) red "未能找到未封IP,保持默认值!" fi ;; @@ -817,6 +818,7 @@ configSingBox() { if [[ -n "$hy2_ip" ]]; then green "选中未封ip为 $hy2_ip" else + hy2_ip=$(curl -s icanhazip.com) red "未能找到未封IP,保持默认值!" fi #配置socks5 @@ -1246,6 +1248,7 @@ installNeZhaAgent() { if [ ! -e "${workedir}" ]; then mkdir -p "${workedir}" fi + cd ${workedir} if [[ ! -e nezha-agent ]]; then echo "正在下载哪吒探针..." From 2df265155c4dc33eb6864b3505aea2892e5513bb Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 15 Mar 2025 23:20:27 +0800 Subject: [PATCH 094/210] =?UTF-8?q?25.3.15=20=E6=8E=A2=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 14 +++- start.sh | 192 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 130 insertions(+), 76 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index 280c5e5e..984e2dd7 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -126,6 +126,7 @@ startNeZhaAgent() { nezha_domain=$(jq -r ".nezha_domain" $config) nezha_port=$(jq -r ".nezha_port" $config) nezha_pwd=$(jq -r ".nezha_pwd" $config) + ver=$(jq -r ".version" $config) tls=$(jq -r ".tls" $config) if checknezhaAgentAlive; then @@ -137,7 +138,18 @@ startNeZhaAgent() { args="${args} --tls " fi - nohup ./nezha-agent ${args} -s "${nezha_domain}:${nezha_port}" -p "${nezha_pwd}" >/dev/null 2>&1 & + if [[ "$ver" == "1" ]]; then + nohup ./nezha-agent ${args} -s "${nezha_domain}:${nezha_port}" -p "${nezha_pwd}" >/dev/null 2>&1 & + else + local yamlcfg="config.yaml" + local datatls="" + if [[ "$tls" == "y" ]]; then + datatls="tls: true" + else + datatls="tls: false" + fi + nohup ./nezha-agent -c $yamlcfg 2>&1 & + fi } diff --git a/start.sh b/start.sh index c28f5594..22bae4aa 100755 --- a/start.sh +++ b/start.sh @@ -1121,8 +1121,8 @@ manageNeZhaAgent() { while true; do yellow "-------------------------" echo "探针管理:" - echo "1.安装探针" - echo "2.升级探针" + echo "1.安装探针(v0或v1)" + echo "2.升级探针(v1以上版本)" echo "3.启动/重启探针" echo "4.停止探针" echo "9.返回主菜单" @@ -1158,9 +1158,122 @@ manageNeZhaAgent() { showMenu } +installNeZhaAgent() { + local workedir="${installpath}/serv00-play/nezha" + if [ ! -e "${workedir}" ]; then + mkdir -p "${workedir}" + fi + + cd ${workedir} + if [ -e nezha-agent ]; then + red "探针已安装,重新安装请先卸载!" + return 1 + fi + echo "确认安装哪吒探针的版本:" + echo "1. v0.20.5" + echo "2. v1 -latest" + read -p "请选择:" ver + if [[ "$ver" != "1" && "$ver" != "2" ]]; then + echo "无效输入!" + return 1 + fi + + echo "正在下载哪吒探针..." + if [[ "$ver" == "1" ]]; then + # 安装v0版本 + local url="https://github.com/nezhahq/agent/releases/download/v0.20.5/nezha-agent_freebsd_amd64.zip" + agentZip="nezha-agent.zip" + if ! wget -qO "$agentZip" "$url"; then + red "下载哪吒探针失败" + return 1 + fi + unzip $agentZip >/dev/null 2>&1 + else + latest_version=$(curl -sL https://github.com/nezhahq/agent/releases/latest | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + download_url="https://github.com/nezhahq/agent/releases/download/$latest_version/nezha-agent_freebsd_amd64.zip" + local filezip="nezha-agent_latest.zip" + curl -sL -o "$filezip" "$download_url" + if [[ ! -e "$filezip" || -n $(file "$filezip" | grep "text") ]]; then + echo "下载探针文件失败!" + return + fi + unzip -o $filezip -d . + fi + chmod +x ./nezha-agent + green "下载完毕" + + local config="nezha.json" + + read -p "请输入哪吒面板的域名或ip:" nezha_domain + read -p "请输入哪吒面板RPC端口(默认 5555):" nezha_port + nezha_port=${nezha_port:-5555} + read -p "请输入服务器密钥(从哪吒面板中获取):" nezha_pwd + read -p "是否启用针对 gRPC 端口的 SSL/TLS加密 (--tls),需要请按 [y],默认是不需要,不理解用户可回车跳过: " tls + tls=${tls:-"N"} + + if [[ -z "$nezha_domain" || -z "$nezha_port" || -z "$nezha_pwd" ]]; then + red "以上参数都不能为空!" + return 1 + fi + + cat >$config <$yamlcfg </dev/null 2>&1 & + else + nohup ./nezha-agent -c $yamlcfg 2>&1 & + fi + green "哪吒探针成功启动!" + +} + updateAgent() { - red "暂不提供在线升级, 只适配哪吒面板v0版本系列。" - return 1 exepath="${installpath}/serv00-play/nezha/nezha-agent" if [ ! -e "$exepath" ]; then red "未安装探针,请先安装!!!" @@ -1243,77 +1356,6 @@ startAgent() { } -installNeZhaAgent() { - local workedir="${installpath}/serv00-play/nezha" - if [ ! -e "${workedir}" ]; then - mkdir -p "${workedir}" - fi - - cd ${workedir} - if [[ ! -e nezha-agent ]]; then - echo "正在下载哪吒探针..." - local url="https://github.com/nezhahq/agent/releases/download/v0.20.3/nezha-agent_freebsd_amd64.zip" - agentZip="nezha-agent.zip" - if ! wget -qO "$agentZip" "$url"; then - red "下载哪吒探针失败" - return 1 - fi - unzip $agentZip >/dev/null 2>&1 - chmod +x ./nezha-agent - green "下载完毕" - fi - - local config="nezha.json" - local input="y" - if [[ -e "$config" ]]; then - echo "哪吒探针配置如下:" - cat "$config" - read -p "是否修改? [y/n] [n]:" input - input=${input:-n} - fi - - if [[ "$input" == "y" ]]; then - read -p "请输入哪吒面板的域名或ip:" nezha_domain - read -p "请输入哪吒面板RPC端口(默认 5555):" nezha_port - nezha_port=${nezha_port:-5555} - read -p "请输入服务器密钥(从哪吒面板中获取):" nezha_pwd - read -p "是否启用针对 gRPC 端口的 SSL/TLS加密 (--tls),需要请按 [y],默认是不需要,不理解用户可回车跳过: " tls - tls=${tls:-"N"} - else - nezha_domain=$(jq -r ".nezha_domain" $config) - nezha_port=$(jq -r ".nezha_port" $config) - nezha_pwd=$(jq -r ".nezha_pwd" $config) - tls=$(jq -r ".tls" $config) - fi - - if [[ -z "$nezha_domain" || -z "$nezha_port" || -z "$nezha_pwd" ]]; then - red "以上参数都不能为空!" - return 1 - fi - - cat >$config </dev/null 2>&1 & - green "哪吒探针成功启动!" - -} - uninstallAgent() { read -p "确定卸载哪吒探针? [y/n] [n]:" input input=${input:-n} From 6d1b175dab759f6c0464ac31cd94cf1548729fd6 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 16 Mar 2025 00:38:54 +0800 Subject: [PATCH 095/210] =?UTF-8?q?25.3.16=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 80 insertions(+), 7 deletions(-) diff --git a/start.sh b/start.sh index 22bae4aa..e41fd127 100755 --- a/start.sh +++ b/start.sh @@ -1121,10 +1121,12 @@ manageNeZhaAgent() { while true; do yellow "-------------------------" echo "探针管理:" + echo "服务状态: $(checkProcStatus nezha-agent)" echo "1.安装探针(v0或v1)" - echo "2.升级探针(v1以上版本)" + echo "2.升级探针(仅v1以上版本)" echo "3.启动/重启探针" echo "4.停止探针" + echo "5.卸载探针" echo "9.返回主菜单" echo "0.退出脚本" yellow "-------------------------" @@ -1144,6 +1146,9 @@ manageNeZhaAgent() { 4) stopNeZhaAgent ;; + 5) + uninstallAgent + ;; 9) break ;; @@ -1317,8 +1322,8 @@ updateAgent() { } startAgent() { - local workedir="${installpath}/serv00-play/nezha" - if [ ! -e "${workedir}" ]; then + local exepath="${installpath}/serv00-play/nezha/nezha-agent" + if [ ! -e "${exepath}" ]; then red "未安装探针,请先安装!!!" return fi @@ -1333,6 +1338,7 @@ startAgent() { nezha_domain=$(jq -r ".nezha_domain" $configfile) nezha_port=$(jq -r ".nezha_port" $configfile) nezha_pwd=$(jq -r ".nezha_pwd" $configfile) + ver=$(jq -r ".version" $configfile) tls=$(jq -r ".tls" $configfile) if checknezhaAgentAlive; then @@ -1344,8 +1350,12 @@ startAgent() { args="${args} --tls " fi - #echo "./nezha-agent ${args} -s ${nezha_domain}:${nezha_port} -p ${nezha_pwd}" - nohup ./nezha-agent ${args} -s ${nezha_domain}:${nezha_port} -p ${nezha_pwd} >/dev/null 2>&1 & + if [[ "$ver" == "1" ]]; then + #echo "./nezha-agent ${args} -s ${nezha_domain}:${nezha_port} -p ${nezha_pwd}" + nohup ./nezha-agent ${args} -s ${nezha_domain}:${nezha_port} -p ${nezha_pwd} >/dev/null 2>&1 & + else + nohup ./nezha-agent -c config.yaml 2>&1 & + fi if checknezhaAgentAlive; then green "启动成功!" @@ -1370,6 +1380,69 @@ uninstallAgent() { fi } +manageNeZhaBoard() { + if ! checkInstalled "serv00-play"; then + return 1 + fi + while true; do + yellow "---------------------" + echo "哪吒面板管理(仅支持v1):" + echo "服务状态: $(checkProcStatus dashboard)" + echo "1. 安装" + echo "2. 启动" + echo "3. 停止" + echo "4. 更新" + echo "8. 卸载" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + + case $input in + 1) + installNeZhaDashboard + ;; + 2) + startNeZhaDashboard + ;; + 3) + stopNeZhaDashboard + ;; + 4) + updateNeZhaDashboard + ;; + 8) + uninstallNeZhaDashboard + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu +} + +installNeZhaDashboard() { + local workedir="${installpath}/serv00-play/nezha-board" + if [ ! -e "${workedir}" ]; then + mkdir -p "${workedir}" + fi + + cd ${workedir} + if [ -e dashboard ]; then + red "面板已安装,重新安装请先卸载!" + return 1 + fi + if ! checkDownload "dashboard"; then + return 1 + fi +} setCnTimeZone() { read -p "确定设置中国上海时区? [y/n] [y]:" input @@ -3234,7 +3307,7 @@ showMenu() { echo "请选择一个选项:" options=("安装/更新serv00-play项目" "sun-panel" "webssh" "阅后即焚" "linkalive" "设置保活的项目" "配置sing-box" - "运行sing-box" "停止sing-box" "显示sing-box节点信息" "快照恢复" "系统初始化" "前置工作及设置中国时区" "管理哪吒探针" "卸载探针" "设置彩色开机字样" "显示本机IP" + "运行sing-box" "停止sing-box" "显示sing-box节点信息" "快照恢复" "系统初始化" "前置工作及设置中国时区" "哪吒探针管理" "哪吒面板管理" "设置彩色开机字样" "显示本机IP" "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "KeepAlive" "卸载") select opt in "${options[@]}"; do @@ -3282,7 +3355,7 @@ showMenu() { manageNeZhaAgent ;; 15) - uninstallAgent + manageNeZhaBoard ;; 16) setColorWord From 66f70ab7516bb86761a595563a970970b07b7251 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 16 Mar 2025 21:25:02 +0800 Subject: [PATCH 096/210] =?UTF-8?q?25.3.16=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- utils.sh | 1 + 2 files changed, 119 insertions(+), 2 deletions(-) diff --git a/start.sh b/start.sh index e41fd127..9858f40d 100755 --- a/start.sh +++ b/start.sh @@ -1387,7 +1387,7 @@ manageNeZhaBoard() { while true; do yellow "---------------------" echo "哪吒面板管理(仅支持v1):" - echo "服务状态: $(checkProcStatus dashboard)" + echo "服务状态: $(checkProcStatus nezha-dashboard)" echo "1. 安装" echo "2. 启动" echo "3. 停止" @@ -1435,13 +1435,126 @@ installNeZhaDashboard() { fi cd ${workedir} - if [ -e dashboard ]; then + if [ -e "./nezha-dashboard" ]; then red "面板已安装,重新安装请先卸载!" return 1 fi if ! checkDownload "dashboard"; then return 1 fi + if [[ -e "dashboard" ]]; then + mv ./dashboard ./nezha-dashboard + chmod +x ./nezha-dashboard + fi + + #自动分配端口 + loadPort + randomPort tcp nezha-dashboard + if [[ -n "$port" ]]; then + nz_port="$port" + else + red "未输入端口号" + return 1 + fi + printf "请输入站点标题: " + read -r nz_site_title + # printf "请指定安装命令中预设的 nezha-agent 连接地址 (例如 example.com:12345)" + # read -r nz_hostport + println "请指定后台语言" + println "1. 中文(简体)" + println "2. 中文(台灣)" + println "3. English" + while true; do + printf "请输入选项 [1-3]" + read -r option + case "${option}" in + 1) + nz_lang=zh_CN + break + ;; + 2) + nz_lang=zh_TW + break + ;; + 3) + nz_lang=en_US + break + ;; + *) + err "请输入正确的选项 [1-3]" + ;; + esac + done + echo "正在安装哪吒面板,请等待..." + domain="" + webIp="" + if ! makeWWW "" $nz_port; then + echo "绑定域名失败!" + return 1 + fi + if ! applyLE $domain $webIp; then + echo "申请证书失败!" + return 1 + fi + nz_hostport="${domain}:${nz_port}" + #serv00不支持gprc转发,所以不需要tls + cat >config.yaml <borad.log 2>&1 & + if checkProcAlive nezha-dashboard; then + green "面板已启动!" + else + red "面板启动失败,请查看日志borad.log" + fi + +} +stopNeZhaDashboard() { + if checkProcAlive nezha-dashboard; then + stopProc nezha-dashboard + else + red "面板未启动!" + fi +} +updateNeZhaDashboard() { + echo "暂不支持" + return +} + +uninstallNeZhaDashboard() { + read -p "确定卸载哪吒面板? [y/n] [n]:" input + input=${input:-n} + + if [[ "$input" == "y" ]]; then + if checkProcAlive nezha-dashboard; then + stopNeZhaDashboard + fi + local workedir="${installpath}/serv00-play/nezha-board" + rm -rf $workedir + green "卸载完毕!" + fi } setCnTimeZone() { @@ -2581,6 +2694,9 @@ makeWWW() { is_self_domain=1 read -p "请输入域名(确保此前域名已指向webip):" domain else + if [[ -z ${proc:""} ]]; then + read -p "请输入默认域名的二级域名的前缀(如二级域名 sub.main.com, 则填sub):" proc + fi domain=$(getUserDoMain "$proc") fi diff --git a/utils.sh b/utils.sh index 6ee6c9a5..148b1ee8 100644 --- a/utils.sh +++ b/utils.sh @@ -66,6 +66,7 @@ stopProc() { kill -9 $r fi echo "已停掉$procname!" + return 0 } checkSingboxAlive() { From e2111cab83f90c50a25e5778a551fd9cd81ab844 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 16 Mar 2025 23:55:40 +0800 Subject: [PATCH 097/210] =?UTF-8?q?25.3.16=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/start.sh b/start.sh index 9858f40d..0d96812e 100755 --- a/start.sh +++ b/start.sh @@ -1456,16 +1456,16 @@ installNeZhaDashboard() { red "未输入端口号" return 1 fi - printf "请输入站点标题: " + echo "请输入站点标题: " read -r nz_site_title # printf "请指定安装命令中预设的 nezha-agent 连接地址 (例如 example.com:12345)" # read -r nz_hostport - println "请指定后台语言" - println "1. 中文(简体)" - println "2. 中文(台灣)" - println "3. English" + echo "请指定后台语言" + echo "1. 中文(简体)" + echo "2. 中文(台灣)" + echo "3. English" while true; do - printf "请输入选项 [1-3]" + echo "请输入选项 [1-3]" read -r option case "${option}" in 1) From 6d0027ddf5c999047af7ab0805351cc974d4a0da Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 16 Mar 2025 23:57:53 +0800 Subject: [PATCH 098/210] =?UTF-8?q?25.3.16=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/start.sh b/start.sh index 0d96812e..db771429 100755 --- a/start.sh +++ b/start.sh @@ -1456,8 +1456,7 @@ installNeZhaDashboard() { red "未输入端口号" return 1 fi - echo "请输入站点标题: " - read -r nz_site_title + read -p "请输入站点标题: " nz_site_title # printf "请指定安装命令中预设的 nezha-agent 连接地址 (例如 example.com:12345)" # read -r nz_hostport echo "请指定后台语言" @@ -1465,8 +1464,7 @@ installNeZhaDashboard() { echo "2. 中文(台灣)" echo "3. English" while true; do - echo "请输入选项 [1-3]" - read -r option + read -p "请输入选项 [1-3]" option case "${option}" in 1) nz_lang=zh_CN @@ -1481,7 +1479,7 @@ installNeZhaDashboard() { break ;; *) - err "请输入正确的选项 [1-3]" + echo "请输入正确的选项 [1-3]" ;; esac done From f63abae6ccbc279594343dcdf187d53253af5f23 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Mar 2025 00:00:52 +0800 Subject: [PATCH 099/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils.sh b/utils.sh index 148b1ee8..f134b1e5 100644 --- a/utils.sh +++ b/utils.sh @@ -259,7 +259,7 @@ getDoMain() { if isServ00; then echo -n "serv00.com" else - echo -n "hostuno.com" + echo -n "useruno.com" fi } @@ -270,7 +270,7 @@ getUserDoMain() { if isServ00; then baseDomain="$user.serv00.net" else - baseDomain="$user.hostuno.com" + baseDomain="$user.useruno.com" fi if [[ -n "$proc" ]]; then echo -n "$proc.$baseDomain" From 13b99d391acac381961f9e7750c62fd8d142a002 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Mar 2025 00:09:32 +0800 Subject: [PATCH 100/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/start.sh b/start.sh index db771429..1e37f639 100755 --- a/start.sh +++ b/start.sh @@ -1505,7 +1505,7 @@ installNeZhaDashboard() { tls: false EOF - + mkdir ./data green "面板安装成功!" } startNeZhaDashboard() { @@ -1550,7 +1550,19 @@ uninstallNeZhaDashboard() { stopNeZhaDashboard fi local workedir="${installpath}/serv00-play/nezha-board" - rm -rf $workedir + if [ ! -e "${workedir}" ]; then + red "未安装面板!" + return + fi + cd $workedir + if [ ! -e "config.json" ]; then + red "未安装面板!" + return + fi + the_domain=$(jq -r ".domain" config.json) + #获取二级域名前缀 + subdomain=$(echo $the_domain | cut -d. -f1) + uninstallProc $subdomain $the_domain green "卸载完毕!" fi } From 28714527dcc2a0ab52887408efc38c8fc97d930f Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Mar 2025 00:21:55 +0800 Subject: [PATCH 101/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/start.sh b/start.sh index 1e37f639..29bd8c07 100755 --- a/start.sh +++ b/start.sh @@ -1496,6 +1496,7 @@ installNeZhaDashboard() { fi nz_hostport="${domain}:${nz_port}" #serv00不支持gprc转发,所以不需要tls + cat >config.yaml < Date: Mon, 17 Mar 2025 00:26:28 +0800 Subject: [PATCH 102/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/start.sh b/start.sh index 29bd8c07..74306a7c 100755 --- a/start.sh +++ b/start.sh @@ -1494,6 +1494,7 @@ installNeZhaDashboard() { echo "申请证书失败!" return 1 fi + cd ${workedir} nz_hostport="${domain}:${nz_port}" #serv00不支持gprc转发,所以不需要tls @@ -1543,21 +1544,12 @@ updateNeZhaDashboard() { } uninstallNeZhaDashboard() { - read -p "确定卸载哪吒面板? [y/n] [n]:" input - input=${input:-n} - - if [[ "$input" == "y" ]]; then - if checkProcAlive nezha-dashboard; then - stopNeZhaDashboard - fi - local workedir="${installpath}/serv00-play/nezha-board" - if [ ! -e "${workedir}" ]; then - red "未安装面板!" - return - fi - uninstallProc $workedir "nezha-dashboard" - green "卸载完毕!" + local workedir="${installpath}/serv00-play/nezha-board" + if [ ! -e "${workedir}" ]; then + red "未安装面板!" + return fi + uninstallProc $workedir "nezha-dashboard" } setCnTimeZone() { From 13c1dd104b6459503a9c78ad1aee389d9f2196fe Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Mar 2025 15:58:16 +0800 Subject: [PATCH 103/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 25 +++++++++++++++++++++++++ start.sh | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/keepalive.sh b/keepalive.sh index 984e2dd7..e12cfd36 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -171,6 +171,20 @@ startMtg() { } +startNeZhaDashboard() { + cd ${installpath}/serv00-play/nezha-board + if checkProcAlive nezha-dashboard; then + stopNeZhaDashboard + fi + nohup ./nezha-dashboard -c config.yaml >borad.log 2>&1 & + if checkProcAlive nezha-dashboard; then + green "面板已启动!" + else + red "面板启动失败,请查看日志borad.log" + fi + +} + startAlist() { alistpath="${installpath}/serv00-play/alist" @@ -347,6 +361,17 @@ for obj in "${monitor[@]}"; do msg="nezha-agent 重启成功." fi fi + elif [ "$obj" == "nezha-dashboard" ]; then + if ! checkProcAlive "nezha-dashboard"; then + cd ${installpath}/serv00-play/nezha-board + startNeZhaDashboard + sleep 1 + if ! checkProcAlive "nezha-dashboard"; then + msg="nezha-dashboard 重启失败." + else + msg="nezha-dashboard 重启成功." + fi + fi elif [ "$obj" == "mtg" ]; then if ! checkMtgAlive; then cd ${installpath}/serv00-play/dmtg diff --git a/start.sh b/start.sh index 74306a7c..b8d5608b 100755 --- a/start.sh +++ b/start.sh @@ -1272,7 +1272,7 @@ EOF if [[ "$ver" == "1" ]]; then nohup ./nezha-agent ${args} -s "${nezha_domain}:${nezha_port}" -p "${nezha_pwd}" >/dev/null 2>&1 & else - nohup ./nezha-agent -c $yamlcfg 2>&1 & + nohup ./nezha-agent -c $yamlcfg >/dev/null 2>&1 & fi green "哪吒探针成功启动!" From f9de689b99796e5b830c9e0034007d0f1f7eaf18 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Mar 2025 15:59:31 +0800 Subject: [PATCH 104/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/start.sh b/start.sh index b8d5608b..10b8ab9e 100755 --- a/start.sh +++ b/start.sh @@ -140,6 +140,7 @@ createConfigFile() { echo "4. mtproto代理" echo "5. alist" echo "6. webssh" + echo "7. 哪吒面板" echo "88. 暂停所有保活功能" echo "99. 复通所有保活功能(之前有配置的情况下)" echo "0. 返回主菜单" @@ -183,6 +184,9 @@ createConfigFile() { 6) item+=("webssh") ;; + 7) + item+=("nezha-dashboard") + ;; 88) #delCron backupConfig "config.json" From e01f57d8d153d5f56f0ff817c78f457c01171a6e Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Mar 2025 16:59:03 +0800 Subject: [PATCH 105/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/start.sh b/start.sh index 10b8ab9e..3ae5491f 100755 --- a/start.sh +++ b/start.sh @@ -1293,7 +1293,7 @@ updateAgent() { cd $workedir local_version="v"$(./nezha-agent -v) - latest_version=$(curl -sL https://github.com/nezhahq/agent/releases/latest | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + latest_version=$(curl -sL https://github.com/nezhahq/agent/releases/latest | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1 | sed 's/v//') if [[ "$local_version" != "$latest_version" ]]; then echo "发现新版本: $latest_version,当前版本: $local_version。正在更新..." @@ -1461,11 +1461,9 @@ installNeZhaDashboard() { return 1 fi read -p "请输入站点标题: " nz_site_title - # printf "请指定安装命令中预设的 nezha-agent 连接地址 (例如 example.com:12345)" - # read -r nz_hostport echo "请指定后台语言" echo "1. 中文(简体)" - echo "2. 中文(台灣)" + echo "2. 中文(繁体)" echo "3. English" while true; do read -p "请输入选项 [1-3]" option From d8cbbcccf7656f6774774fbd2a931ef7de762274 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Mar 2025 17:23:31 +0800 Subject: [PATCH 106/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 3ae5491f..6db9b2da 100755 --- a/start.sh +++ b/start.sh @@ -1293,7 +1293,7 @@ updateAgent() { cd $workedir local_version="v"$(./nezha-agent -v) - latest_version=$(curl -sL https://github.com/nezhahq/agent/releases/latest | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1 | sed 's/v//') + latest_version=$(curl -sL "https://api.github.com/repos/nezhahq/agent/releases/latest" | jq -r '.tag_name // empty') if [[ "$local_version" != "$latest_version" ]]; then echo "发现新版本: $latest_version,当前版本: $local_version。正在更新..." From ee005dc97575b80ee86effee35b17032986caaf8 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Mar 2025 17:26:21 +0800 Subject: [PATCH 107/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 6db9b2da..514420d4 100755 --- a/start.sh +++ b/start.sh @@ -1292,7 +1292,7 @@ updateAgent() { local workedir="${installpath}/serv00-play/nezha" cd $workedir - local_version="v"$(./nezha-agent -v) + local_version="v"$(./nezha-agent -v | awk '{print $3}') latest_version=$(curl -sL "https://api.github.com/repos/nezhahq/agent/releases/latest" | jq -r '.tag_name // empty') if [[ "$local_version" != "$latest_version" ]]; then From e0e004ea3c9f8cef45df05fca1c14f9ade020dca Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Mar 2025 19:18:06 +0800 Subject: [PATCH 108/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 95 ++++++++++++++++++++++++++++++++++++++------------------ utils.sh | 25 ++++++++++++--- 2 files changed, 84 insertions(+), 36 deletions(-) diff --git a/start.sh b/start.sh index 514420d4..c604c31a 100755 --- a/start.sh +++ b/start.sh @@ -1289,40 +1289,55 @@ updateAgent() { return fi - local workedir="${installpath}/serv00-play/nezha" - cd $workedir - - local_version="v"$(./nezha-agent -v | awk '{print $3}') - latest_version=$(curl -sL "https://api.github.com/repos/nezhahq/agent/releases/latest" | jq -r '.tag_name // empty') + cd ${installpath}/serv00-play/nezha - if [[ "$local_version" != "$latest_version" ]]; then - echo "发现新版本: $latest_version,当前版本: $local_version。正在更新..." - download_url="https://github.com/nezhahq/agent/releases/download/$latest_version/nezha-agent_freebsd_amd64.zip" + if ! check_update_from_net "nezha-agent"; then + return 1 + fi - local filezip="nezha-agent_latest.zip" - curl -sL -o "$filezip" "$download_url" - if [[ ! -e "$filezip" || -n $(file "$filezip" | grep "text") ]]; then - echo "下载探针文件失败!" - return - fi - local agent_runing=0 - if checknezhaAgentAlive; then - stopNeZhaAgent - agent_runing=1 - fi - unzip -o $filezip -d . + stopNeZhaAgent + download_from_net "nezha-agent" + if [[ -e "nezha-agent" ]]; then chmod +x ./nezha-agent - if [ $agent_runing -eq 1 ]; then - startAgent - fi - rm -rf $filezip - green "更新完成!新版本: $latest_version" - else - echo "已经是最新版本: $local_version" - fi - if [[ $agent_runing -eq 1 ]]; then - exit 0 fi + startNeZhaAgent + green "更新完毕!" + + return + # local workedir="${installpath}/serv00-play/nezha" + # cd $workedir + + # local_version="v"$(./nezha-agent -v | awk '{print $3}') + # latest_version=$(curl -sL "https://api.github.com/repos/nezhahq/agent/releases/latest" | jq -r '.tag_name // empty') + + # if [[ "$local_version" != "$latest_version" ]]; then + # echo "发现新版本: $latest_version,当前版本: $local_version。正在更新..." + # download_url="https://github.com/nezhahq/agent/releases/download/$latest_version/nezha-agent_freebsd_amd64.zip" + + # local filezip="nezha-agent_latest.zip" + # curl -sL -o "$filezip" "$download_url" + # if [[ ! -e "$filezip" || -n $(file "$filezip" | grep "text") ]]; then + # echo "下载探针文件失败!" + # return + # fi + # local agent_runing=0 + # if checknezhaAgentAlive; then + # stopNeZhaAgent + # agent_runing=1 + # fi + # unzip -o $filezip -d . + # chmod +x ./nezha-agent + # if [ $agent_runing -eq 1 ]; then + # startAgent + # fi + # rm -rf $filezip + # green "更新完成!新版本: $latest_version" + # else + # echo "已经是最新版本: $local_version" + # fi + # if [[ $agent_runing -eq 1 ]]; then + # exit 0 + # fi } startAgent() { @@ -1541,7 +1556,25 @@ stopNeZhaDashboard() { fi } updateNeZhaDashboard() { - echo "暂不支持" + if [ ! -e "${installpath}/serv00-play/nezha-board/nezha-dashboard" ]; then + red "未安装面板,请先安装!!!" + return + fi + cd ${installpath}/serv00-play/nezha-board + + if ! check_update_from_net "nezha-dashboard"; then + return 1 + fi + + stopNeZhaDashboard + download_from_net "nezha-dashboard" + if [[ -e "dashboard" ]]; then + mv -f ./dashboard ./nezha-dashboard + chmod +x ./nezha-dashboard + fi + startNeZhaDashboard + green "更新完毕!" + return } diff --git a/utils.sh b/utils.sh index f134b1e5..cd7c7c08 100644 --- a/utils.sh +++ b/utils.sh @@ -574,6 +574,22 @@ check_update_from_net() { fi download_from_github_release "AlistGo" "alist" "alist-freebsd-amd64.tar.gz" ;; + "nezha-agent") + local current_version="v"$(./nezha-agent -v | awk '{print $3}') + if ! check_from_github "nezhahq" "agent" "$current_version"; then + echo "未发现新版本!" + return 1 + fi + download_from_github_release "nezhahq" "agent" "nezha-agent_freebsd_amd64.zip" + ;; + "nezha-dashboard") + local current_version=$(./nezha-dashboard -v) + if ! check_from_github "naiba" "nezha" "$current_version"; then + echo "未发现新版本!" + return 1 + fi + download_from_github_release "frankiejun" "freebsd-nezha" "dashboard.gz" + ;; esac } @@ -582,8 +598,7 @@ check_from_github() { local repository=$2 local local_version="$3" - latest_version=$(curl -sL https://github.com/${user}/${repository}/releases/latest | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) - + latest_version=$(curl -sL "https://api.github.com/repos/${user}/${repository}/releases/latest" | jq -r '.tag_name // empty') if [[ "$local_version" != "$latest_version" ]]; then echo "发现新版本: $latest_version,当前版本: $local_version, 正在更新..." return 0 @@ -597,10 +612,10 @@ download_from_github_release() { local zippackage="$3" local url="https://github.com/${user}/${repository}" - local latestUrl="$url/releases/latest" - - local latest_version=$(curl -sL $latestUrl | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + # local latestUrl="$url/releases/latest" + # local latest_version=$(curl -sL $latestUrl | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + latest_version=$(curl -sL "https://api.github.com/repos/${user}/${repository}/releases/latest" | jq -r '.tag_name // empty') local download_url="${url}/releases/download/$latest_version/$zippackage" curl -sL -o "$zippackage" "$download_url" if [[ ! -e "$zippackage" || -n $(file "$zippackage" | grep "text") ]]; then From 80fdfa7c284965b148b2d078461344c5e371cc37 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Mon, 17 Mar 2025 19:24:18 +0800 Subject: [PATCH 109/210] =?UTF-8?q?25.3.17=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index e12cfd36..757563de 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -252,7 +252,9 @@ tg_token=$(jq -r ".telegram_token // empty" config.json) if [[ -z "$tg_token" ]]; then echo "从msg.json获取 telegram_token" - TELEGRAM_TOKEN=$(jq -r '.telegram_token // empty' msg.json) + if [[ -e "msg.json" ]]; then + TELEGRAM_TOKEN=$(jq -r '.telegram_token // empty' msg.json) + fi else TELEGRAM_TOKEN=$tg_token fi @@ -291,12 +293,16 @@ fi if [ -z "$BUTTON_URL" ]; then echo "从msg.json获取 button_url" - BUTTON_URL=$(jq -r ".button_url // empty" msg.json) + if [[ -e "msg.json" ]]; then + BUTTON_URL=$(jq -r ".button_url // empty" msg.json) + fi fi if [ -z "$PASS" ]; then echo "从msg.json获取 password" - PASS=$(jq -r ".password // empty" msg.json) + if [[ -e "msg.json" ]]; then + PASS=$(jq -r ".password // empty" msg.json) + fi fi export TELEGRAM_TOKEN TELEGRAM_USERID WXSENDKEY sendtype BUTTON_URL PASS From 2840081ebefb5ff215e3aaa19015fb2a2e0d9d06 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 19 Mar 2025 22:49:00 +0800 Subject: [PATCH 110/210] =?UTF-8?q?v1=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF/=E6=8E=A2=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index c604c31a..379a60d9 100755 --- a/start.sh +++ b/start.sh @@ -1346,7 +1346,7 @@ startAgent() { red "未安装探针,请先安装!!!" return fi - cd $workedir + cd "${installpath}/serv00-play/nezha" local configfile="./nezha.json" if [ ! -e "$configfile" ]; then From c517622a4030e20dedc674b088f21bf32ac38c6e Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 20 Mar 2025 22:06:43 +0800 Subject: [PATCH 111/210] =?UTF-8?q?v1=E5=93=AA=E5=90=92=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 37 ++----------------------------------- 1 file changed, 2 insertions(+), 35 deletions(-) diff --git a/start.sh b/start.sh index 379a60d9..6ef7dd25 100755 --- a/start.sh +++ b/start.sh @@ -1304,40 +1304,7 @@ updateAgent() { green "更新完毕!" return - # local workedir="${installpath}/serv00-play/nezha" - # cd $workedir - - # local_version="v"$(./nezha-agent -v | awk '{print $3}') - # latest_version=$(curl -sL "https://api.github.com/repos/nezhahq/agent/releases/latest" | jq -r '.tag_name // empty') - - # if [[ "$local_version" != "$latest_version" ]]; then - # echo "发现新版本: $latest_version,当前版本: $local_version。正在更新..." - # download_url="https://github.com/nezhahq/agent/releases/download/$latest_version/nezha-agent_freebsd_amd64.zip" - - # local filezip="nezha-agent_latest.zip" - # curl -sL -o "$filezip" "$download_url" - # if [[ ! -e "$filezip" || -n $(file "$filezip" | grep "text") ]]; then - # echo "下载探针文件失败!" - # return - # fi - # local agent_runing=0 - # if checknezhaAgentAlive; then - # stopNeZhaAgent - # agent_runing=1 - # fi - # unzip -o $filezip -d . - # chmod +x ./nezha-agent - # if [ $agent_runing -eq 1 ]; then - # startAgent - # fi - # rm -rf $filezip - # green "更新完成!新版本: $latest_version" - # else - # echo "已经是最新版本: $local_version" - # fi - # if [[ $agent_runing -eq 1 ]]; then - # exit 0 - # fi + } startAgent() { @@ -1458,7 +1425,7 @@ installNeZhaDashboard() { red "面板已安装,重新安装请先卸载!" return 1 fi - if ! checkDownload "dashboard"; then + if ! download_from_net "dashboard"; then return 1 fi if [[ -e "dashboard" ]]; then From fa5a6f489cf0eb5dac513f26c2a58e929bb21d40 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 20 Mar 2025 22:27:50 +0800 Subject: [PATCH 112/210] =?UTF-8?q?v1=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.sh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/utils.sh b/utils.sh index cd7c7c08..defa3220 100644 --- a/utils.sh +++ b/utils.sh @@ -558,7 +558,12 @@ download_from_net() { "alist") download_from_github_release "AlistGo" "alist" "alist-freebsd-amd64.tar.gz" ;; - + "nezha-agent") + download_from_github_release "nezhahq" "agent" "nezha-agent_freebsd_amd64.zip" + ;; + "nezha-dashboard") + download_from_github_release "frankiejun" "freebsd-nezha" "dashboard.gz" + ;; esac } @@ -597,8 +602,11 @@ check_from_github() { local user=$1 local repository=$2 local local_version="$3" + local url="https://github.com/${user}/${repository}" + local latestUrl="$url/releases/latest" - latest_version=$(curl -sL "https://api.github.com/repos/${user}/${repository}/releases/latest" | jq -r '.tag_name // empty') + latest_version=$(curl -sL $latestUrl | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + #latest_version=$(curl -sL "https://api.github.com/repos/${user}/${repository}/releases/latest" | jq -r '.tag_name // empty') if [[ "$local_version" != "$latest_version" ]]; then echo "发现新版本: $latest_version,当前版本: $local_version, 正在更新..." return 0 @@ -612,10 +620,10 @@ download_from_github_release() { local zippackage="$3" local url="https://github.com/${user}/${repository}" - # local latestUrl="$url/releases/latest" + local latestUrl="$url/releases/latest" - # local latest_version=$(curl -sL $latestUrl | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) - latest_version=$(curl -sL "https://api.github.com/repos/${user}/${repository}/releases/latest" | jq -r '.tag_name // empty') + local latest_version=$(curl -sL $latestUrl | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + #latest_version=$(curl -sL "https://api.github.com/repos/${user}/${repository}/releases/latest" | jq -r '.tag_name // empty') local download_url="${url}/releases/download/$latest_version/$zippackage" curl -sL -o "$zippackage" "$download_url" if [[ ! -e "$zippackage" || -n $(file "$zippackage" | grep "text") ]]; then From e47f99c08e0506780dad7c8f26daab9f45bd65bb Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 20 Mar 2025 22:29:58 +0800 Subject: [PATCH 113/210] =?UTF-8?q?v1=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utils.sh b/utils.sh index defa3220..60069a05 100644 --- a/utils.sh +++ b/utils.sh @@ -635,6 +635,9 @@ download_from_github_release() { *.zip) unzip -o "$zippackage" -d . ;; + *.gz) + gzip -d "$zippackage" + ;; *.tar.gz | *.tgz) tar -xzf "$zippackage" ;; From 41b743107a1a99bce9a90c4d000e8132811ac7ae Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 21 Mar 2025 21:09:53 +0800 Subject: [PATCH 114/210] =?UTF-8?q?v1=E9=9D=A2=E6=9D=BF=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 6ef7dd25..af1e4740 100755 --- a/start.sh +++ b/start.sh @@ -1425,7 +1425,7 @@ installNeZhaDashboard() { red "面板已安装,重新安装请先卸载!" return 1 fi - if ! download_from_net "dashboard"; then + if ! download_from_net "nezha-dashboard"; then return 1 fi if [[ -e "dashboard" ]]; then From 0f910d853b27b00017730a73fff546416d25bd7b Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 21 Mar 2025 21:20:16 +0800 Subject: [PATCH 115/210] =?UTF-8?q?v1=E9=9D=A2=E6=9D=BF=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/start.sh b/start.sh index af1e4740..e029e1ee 100755 --- a/start.sh +++ b/start.sh @@ -1299,6 +1299,9 @@ updateAgent() { download_from_net "nezha-agent" if [[ -e "nezha-agent" ]]; then chmod +x ./nezha-agent + else + red "下载失败!" + return fi startNeZhaAgent green "更新完毕!" @@ -1431,6 +1434,9 @@ installNeZhaDashboard() { if [[ -e "dashboard" ]]; then mv ./dashboard ./nezha-dashboard chmod +x ./nezha-dashboard + else + red "下载失败!" + return 1 fi #自动分配端口 From be57c2a053cf329dff37274dcd95a47d43db81f8 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 22 Mar 2025 12:14:02 +0800 Subject: [PATCH 116/210] =?UTF-8?q?v1=20=E5=93=AA=E5=90=92=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive_node.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/revive_node.sh b/revive_node.sh index 2c8cc92d..f857e0cc 100644 --- a/revive_node.sh +++ b/revive_node.sh @@ -10,7 +10,7 @@ TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} TELEGRAM_USERID=${TELEGRAM_USERID:-null} WXSENDKEY=${WXSENDKEY:-null} BUTTON_URL=${BUTTON_URL:-null} -LOGININFO=${LOGININFO:-Y} +LOGININFO=${LOGININFO:-N} TOKEN=${TOKEN:-""} TOKEN=$(toBase64 $TOKEN) From 6f8389ffcba140ad5e778e51112a2dbfa72b5ed5 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 22 Mar 2025 12:19:30 +0800 Subject: [PATCH 117/210] 25.3.22 --- README.md | 7 +++---- utils.sh | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e3be6e84..23d1670e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# serv00/hostuno 上的一些应用,包括 argo+vmess/vmess+ws/hy2/socks5/mtproto/alist/哪吒探针/sun-panel/webssh 等, 自动化部署、批量保号、进程防杀、消息推送 +# serv00/hostuno 上的一些应用,包括 argo+vmess/vmess+ws/hy2/socks5/mtproto/alist/哪吒探针|面板/sun-panel/webssh 等, 自动化部署、批量保号、进程防杀、消息推送 💖 如果你在用这个项目,请给我打个 star,好让我知道有多少人从这个项目中受益。 @@ -82,7 +82,7 @@ argo+vmess 的搭建教学看[这里](https://youtu.be/nmb2F6uBKsg?si=v8twWIkIjs ## 赞助

[点击展开] 请作者喝杯咖啡 ~🧧 -_捐赠将是对我最大的支持,它将激励我持续的创新和创作。_ +_捐赠将是对我最大的支持,它将激励我持续的创新和创作。捐赠>=5u, 可联系我加入饭友会会员群_ ![](https://look.pics.cloudns.ch/img/%E6%AC%A7%E6%98%93%E8%B5%9E%E5%8A%A9%E7%A0%81.png) @@ -92,8 +92,7 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。_ ## 项目鸣谢 -[nekohasekai](https://github.com/SagerNet/sing-box)、[AlistGo](https://github.com/AlistGo/alist)、[9seconds](https://github.com/9seconds/mtg)、[eooce](https://github.com/eooce)、[nrootconauto](https://github.com/nrootconauto/MrChrootBSD)、[nezhahq](https://github.com/nezhahq/agent)、[huashengdun](https://github.com/huashengdun/webssh)、[hslr-s](https://github.com/hslr-s/sun-panel) -[yangtb2024](https://github.com/yangtb2024/OneTimeMessagePHP) +[nekohasekai](https://github.com/SagerNet/sing-box)、[AlistGo](https://github.com/AlistGo/alist)、[9seconds](https://github.com/9seconds/mtg)、[eooce](https://github.com/eooce)、[nrootconauto](https://github.com/nrootconauto/MrChrootBSD)、[nezhahq](https://github.com/nezhahq/agent)、[huashengdun](https://github.com/huashengdun/webssh)、[hslr-s](https://github.com/hslr-s/sun-panel)、[yangtb2024](https://github.com/yangtb2024/OneTimeMessagePHP) 测试人员: [ryty1](https://github.com/ryty1), [fgr178707](https://github.com/fgr178707) diff --git a/utils.sh b/utils.sh index 60069a05..1caa6653 100644 --- a/utils.sh +++ b/utils.sh @@ -589,7 +589,7 @@ check_update_from_net() { ;; "nezha-dashboard") local current_version=$(./nezha-dashboard -v) - if ! check_from_github "naiba" "nezha" "$current_version"; then + if ! check_from_github "frankiejun" "freebsd-nezha" "$current_version"; then echo "未发现新版本!" return 1 fi From 5de5e094f74edb4932b045db61160c059792cb01 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 23 Mar 2025 23:22:50 +0800 Subject: [PATCH 118/210] =?UTF-8?q?fixed:alist=E5=AE=89=E8=A3=85=E4=B8=8D?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utils.sh b/utils.sh index 1caa6653..70b93743 100644 --- a/utils.sh +++ b/utils.sh @@ -635,9 +635,6 @@ download_from_github_release() { *.zip) unzip -o "$zippackage" -d . ;; - *.gz) - gzip -d "$zippackage" - ;; *.tar.gz | *.tgz) tar -xzf "$zippackage" ;; @@ -647,6 +644,9 @@ download_from_github_release() { *.tar.xz | *.txz) tar -xJf "$zippackage" ;; + *.gz) + gzip -d "$zippackage" + ;; *.tar) tar -xf "$zippackage" ;; From 7aa4556b1448bc472200a0a523b4060dfae70cf0 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 1 Apr 2025 19:57:37 +0800 Subject: [PATCH 119/210] 20250401 --- utils.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/utils.sh b/utils.sh index 70b93743..0e87b44c 100644 --- a/utils.sh +++ b/utils.sh @@ -19,6 +19,7 @@ red() { } installpath="$HOME" baseurl="https://ss.fkj.pp.ua" +linkBaseurl="https://la.fkj.pp.ua" checknezhaAgentAlive() { if ps aux | grep nezha-agent | grep -v "grep" >/dev/null; then From 10a2cb49731ae890dcb4bb1879f6ca13983995d2 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 3 Apr 2025 14:33:51 +0800 Subject: [PATCH 120/210] .. --- start.sh | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/start.sh b/start.sh index e029e1ee..4c5fb5c5 100755 --- a/start.sh +++ b/start.sh @@ -25,6 +25,7 @@ fi PS3="请选择(输入0退出): " install() { + local input=$1 cd ${installpath} if [ -d "serv00-play" ]; then cd "serv00-play" @@ -70,8 +71,10 @@ install() { chmod +x ${installpath}/serv00-play/singbox/killsing-box.sh chmod +x ${installpath}/serv00-play/singbox/autoUpdateHyIP.sh chmod +x ${installpath}/serv00-play/ssl/cronSSL.sh - read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input - input=${input:-y} + if [ -z "$input" ]; then + read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input + input=${input:-y} + fi if [ "$input" = "y" ]; then kill -9 $PPID @@ -1080,8 +1083,11 @@ ImageRecovery() { } uninstall() { - read -p "确定卸载吗? [y/n] [n]:" input - input=${input:-n} + local input=$1 + if [ -z "$input" ]; then + read -p "确定卸载吗? [y/n] [n]:" input + input=${input:-n} + fi if [ "$input" == "y" ]; then delCron @@ -3279,15 +3285,17 @@ installkeepAlive() { } uninstallkeepAlive() { + local input=$1 local domain=$(getUserDoMain) domain="${domain,,}" local domainPath="${installpath}/domains/$domain/public_nodejs" - read -p "是否卸载? [y/n] [n]:" input - input=${input:-n} - if [[ "$input" != "y" ]]; then - return 1 + if [ -z "$input" ]; then + read -p "是否卸载? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" != "y" ]]; then + return 1 + fi fi - domainPath="${installpath}/domains/$domain/public_nodejs" if ! delDefaultDomain; then return 1 fi @@ -3522,4 +3530,14 @@ showMenu() { } -showMenu +if [ "$1" == "--uninstall" ]; then + echo "执行卸载操作" + uninstall "y" + exit 0 +elif [ "$1" == "--install" ]; then + echo "执行更新操作" + install "y" + exit 0 +else + showMenu +fi From a2556fc23a2ac7fe3ffe6444c7273d6db748de87 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 3 Apr 2025 16:37:13 +0800 Subject: [PATCH 121/210] 2025-04-03 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 23d1670e..be8e3f81 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,12 @@ ## 前置工作 1. 你需要有一个 serv00/hostuno 帐号 -2. 首次运行,无需使用面板,选 1 安装 serv00-play, 它会自动重新登录,输入 ss 回车进入界面。(以后都是输入 ss 回车进入界面) +2. 运行安装命令后重新登录,输入 ss 回车进入界面。(以后都是输入 ss 回车进入界面) ## 安装说明 ```s -bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/start.sh) +bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/start.sh) --install ``` ## 变量说明 From 50a309e0b2e974e76606209b71f3d41f0a14f2c3 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 3 Apr 2025 16:41:01 +0800 Subject: [PATCH 122/210] 20250403 --- start.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 4c5fb5c5..8fe421a1 100755 --- a/start.sh +++ b/start.sh @@ -75,11 +75,12 @@ install() { read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input input=${input:-y} fi + echo -e "${YELLOW}安装成功${RESET}" if [ "$input" = "y" ]; then kill -9 $PPID fi - echo -e "${YELLOW}安装成功${RESET}" + } showSingBoxInfo() { From 8780ccd82797e6552b6d85df4915109bd2637ee2 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 3 Apr 2025 18:19:28 +0800 Subject: [PATCH 123/210] 20250403 --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index be8e3f81..4c77cf6e 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ argo+vmess 的搭建教学看[这里](https://youtu.be/nmb2F6uBKsg?si=v8twWIkIjs ## 赞助
[点击展开] 请作者喝杯咖啡 ~🧧 -_捐赠将是对我最大的支持,它将激励我持续的创新和创作。捐赠>=5u, 可联系我加入饭友会会员群_ +_捐赠将是对我最大的支持,它将激励我持续的创新和创作。捐赠>=5u, 可联系我加入饭友会会员群, 捐赠>=10u, 加入赞助人感谢名单_ ![](https://look.pics.cloudns.ch/img/%E6%AC%A7%E6%98%93%E8%B5%9E%E5%8A%A9%E7%A0%81.png) @@ -90,6 +90,10 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。
+| 赞助人 | 赞助方式 | 备注 | +| ----------------------------------------------------------------------------------- | ---------- | ---- | +| [HostVds](https://hostvds.com/?affiliate_uuid=2b9179a7-6900-4636-bed2-182b4db0168e) | 提供服务器 | | + ## 项目鸣谢 [nekohasekai](https://github.com/SagerNet/sing-box)、[AlistGo](https://github.com/AlistGo/alist)、[9seconds](https://github.com/9seconds/mtg)、[eooce](https://github.com/eooce)、[nrootconauto](https://github.com/nrootconauto/MrChrootBSD)、[nezhahq](https://github.com/nezhahq/agent)、[huashengdun](https://github.com/huashengdun/webssh)、[hslr-s](https://github.com/hslr-s/sun-panel)、[yangtb2024](https://github.com/yangtb2024/OneTimeMessagePHP) From 2c89247a580032bfb824a78f729f9ef63f8381b8 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 4 Apr 2025 16:51:45 +0800 Subject: [PATCH 124/210] =?UTF-8?q?=E8=B5=9E=E5=8A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4c77cf6e..a055aaf5 100644 --- a/README.md +++ b/README.md @@ -90,9 +90,10 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。
-| 赞助人 | 赞助方式 | 备注 | -| ----------------------------------------------------------------------------------- | ---------- | ---- | -| [HostVds](https://hostvds.com/?affiliate_uuid=2b9179a7-6900-4636-bed2-182b4db0168e) | 提供服务器 | | +| 赞助人 | 赞助方式 | 备注 | +| ----------------------------------------------------------------------------------- | ------------------------ | ---- | +| [HostVds](https://hostvds.com/?affiliate_uuid=2b9179a7-6900-4636-bed2-182b4db0168e) | 提供服务器 | - | +| [NodeSupport](https://github.com/NodeSeekDev/NodeSupport) | 赞助本项目提供永久服务器 | - | ## 项目鸣谢 From 3e15c624a02661c1178c52f6d0abab8b94bc567c Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 4 Apr 2025 21:43:38 +0800 Subject: [PATCH 125/210] =?UTF-8?q?=E8=B5=9E=E5=8A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a055aaf5..b08557a0 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。 | 赞助人 | 赞助方式 | 备注 | | ----------------------------------------------------------------------------------- | ------------------------ | ---- | | [HostVds](https://hostvds.com/?affiliate_uuid=2b9179a7-6900-4636-bed2-182b4db0168e) | 提供服务器 | - | -| [NodeSupport](https://github.com/NodeSeekDev/NodeSupport) | 赞助本项目提供永久服务器 | - | +| [NodeSupport](https://github.com/NodeSeekDev/NodeSupport) | 赞助本项目提供永久服务器 | -- | ## 项目鸣谢 From 68249bfcb4c785c08f52e5fa0aaaf5ee6b8f14c2 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 4 Apr 2025 22:04:03 +0800 Subject: [PATCH 126/210] =?UTF-8?q?=E8=B5=9E=E5=8A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b08557a0..a3e751fd 100644 --- a/README.md +++ b/README.md @@ -90,10 +90,10 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。 -| 赞助人 | 赞助方式 | 备注 | -| ----------------------------------------------------------------------------------- | ------------------------ | ---- | -| [HostVds](https://hostvds.com/?affiliate_uuid=2b9179a7-6900-4636-bed2-182b4db0168e) | 提供服务器 | - | -| [NodeSupport](https://github.com/NodeSeekDev/NodeSupport) | 赞助本项目提供永久服务器 | -- | +| 赞助人 | 赞助方式 | 备注 | +| --------------------------------------------------------------------------------------------------------------------- | ------------------------ | ---- | +| [HostVds](https://hostvds.com/?affiliate_uuid=2b9179a7-6900-4636-bed2-182b4db0168e) | 提供服务器 | - | +| [YXVM](https://support.nodeget.com/page/promotion?id=95) 和 [NodeSupport](https://github.com/NodeSeekDev/NodeSupport) | 赞助本项目提供永久服务器 | -- | ## 项目鸣谢 From cac24e38e117c57d73e64a38a5536e903a8904b5 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 4 Apr 2025 23:40:58 +0800 Subject: [PATCH 127/210] =?UTF-8?q?=E8=B5=9E=E5=8A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a3e751fd..656ea879 100644 --- a/README.md +++ b/README.md @@ -90,10 +90,10 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。 -| 赞助人 | 赞助方式 | 备注 | -| --------------------------------------------------------------------------------------------------------------------- | ------------------------ | ---- | -| [HostVds](https://hostvds.com/?affiliate_uuid=2b9179a7-6900-4636-bed2-182b4db0168e) | 提供服务器 | - | -| [YXVM](https://support.nodeget.com/page/promotion?id=95) 和 [NodeSupport](https://github.com/NodeSeekDev/NodeSupport) | 赞助本项目提供永久服务器 | -- | +| 赞助人 | 赞助方式 | 备注 | +| ---------------------------------------------------------------------------------------------------------------------- | ------------------------ | ---- | +| [HostVds](https://hostvds.com/?affiliate_uuid=2b9179a7-6900-4636-bed2-182b4db0168e) | 提供服务器 | - | +| [YXVM](https://support.nodeget.com/page/promotion?id=105) 和 [NodeSupport](https://github.com/NodeSeekDev/NodeSupport) | 赞助本项目提供永久服务器 | -- | ## 项目鸣谢 From ef106a731bdbcd1f39925522d332e8a57b436af0 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:15:48 +0800 Subject: [PATCH 128/210] for test --- domains-support/websites/deyiedu.html | 269 +++++++++++++++++++++++++ domains-support/websites/hr.html | 199 +++++++++++++++++++ domains-support/websites/sakura.html | 225 +++++++++++++++++++++ start.sh | 273 +++++++++++++++++++++++++- utils.sh | 9 + 5 files changed, 972 insertions(+), 3 deletions(-) create mode 100644 domains-support/websites/deyiedu.html create mode 100644 domains-support/websites/hr.html create mode 100644 domains-support/websites/sakura.html diff --git a/domains-support/websites/deyiedu.html b/domains-support/websites/deyiedu.html new file mode 100644 index 00000000..f6db1c9e --- /dev/null +++ b/domains-support/websites/deyiedu.html @@ -0,0 +1,269 @@ + + + + + + 德一教育 - 后台管理系统 + + + + + + + + diff --git a/domains-support/websites/hr.html b/domains-support/websites/hr.html new file mode 100644 index 00000000..f085b883 --- /dev/null +++ b/domains-support/websites/hr.html @@ -0,0 +1,199 @@ + + + + + + 人力资源管理系统 - 登录 + + + + + + + + diff --git a/domains-support/websites/sakura.html b/domains-support/websites/sakura.html new file mode 100644 index 00000000..7658a8c8 --- /dev/null +++ b/domains-support/websites/sakura.html @@ -0,0 +1,225 @@ + + + + + + 欢迎来到xx的博客 + + + + + + + + + +
+

欢迎来到xx的博客

+ +
+

春日赏樱小记

+
2025年3月15日
+

+ 今日阳光明媚,我独自前往城郊的樱花园赏花。园中樱花已盛开七分,粉白相间,美不胜收。微风拂过,花瓣纷纷扬扬落下,宛如一场粉色的雪。 +

+

+ 游人如织,却不觉拥挤。或许是被这美景所感染,大家都轻声细语,生怕惊扰了这份宁静。我在一棵古老的樱花树下小憩,看着阳光透过花瓣在地上投下斑驳的影子,心中无比平静。 +

+

+ 樱花花期短暂,正因如此才更显珍贵。人生亦如是,美好的事物总是转瞬即逝,我们更应珍惜当下,把握每一个绽放的瞬间。 +

+
+ +
+

学习前端开发的感悟

+
2025年2月28日
+

+ 最近开始系统地学习前端开发,从HTML、CSS到JavaScript,一步步构建自己的知识体系。虽然有时会遇到困难,但解决问题的过程也充满了乐趣。 +

+

+ 今天完成了这个博客网站的基本框架,虽然还很简陋,但看到自己的想法通过代码变成现实,那种成就感是无可比拟的。特别是实现了樱花飘落的效果,让整个页面生动起来。 +

+

+ 学习编程就像是在学习一门新的语言,通过这种语言,我们可以与计算机交流,创造出无限可能。期待未来能做出更多有趣的项目! +

+
+
+ + +
© 2025 xx的博客 - 由serv00-play搭建
+ + + + + diff --git a/start.sh b/start.sh index 8fe421a1..3c7afacb 100755 --- a/start.sh +++ b/start.sh @@ -2689,6 +2689,7 @@ makeWWW() { local proc=$1 local port=$2 local www_type=${3:-"proxy"} + local input=${4:-""} echo "正在处理服务IP,请等待..." is_self_domain=0 @@ -2698,8 +2699,10 @@ makeWWW() { webIp=$default_webip fi green "可用webip是: $webIp, 默认webip是: $default_webip" - read -p "是否使用自定义域名? [y/n] [n]:" input - input=${input:-n} + if [[ -z "$input" ]]; then + read -p "是否使用自定义域名? [y/n] [n]:" input + input=${input:-n} + fi if [[ "$input" == "y" ]]; then is_self_domain=1 read -p "请输入域名(确保此前域名已指向webip):" domain @@ -3182,6 +3185,267 @@ linkAliveServ() { #showMenu } +DSServ() { + if ! checkInstalled "serv00-play"; then + return 1 + fi + while true; do + yellow "---------------------" + echo "Domains-Support:" + echo "服务状态: $(checkCronName domains-support)" + echo "1. 新增域名" + echo "2. 删除域名" + echo "3. 配置" + echo "4. 开启服务" + echo "5. 停止服务" + yellow "---------------------" + + read -p "请选择:" input + + case $input in + 1) + addDomain + ;; + 2) + delDomain + ;; + 3) + configDs + ;; + 4) + startDs + ;; + 5) + stopDs + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu + +} +write_ds_config() { + local domain=$1 + local url=$2 + cat >config.json < /dev/null 2>&1 " >>mycron + crontab mycron >/dev/null 2>&1 + rm mycron + +} + +stopDs() { + local workdir="${installpath}/serv00-play/domains-support" + cd $workdir + if [[ ! -e "config.json" ]]; then + red "未配置,请先配置!" + return 1 + fi + if checkCronName domains-support; then + echo "正在停止服务..." + crontab -l | grep -v "domains-support" >mycron + crontab mycron >/dev/null 2>&1 + rm mycron + green "服务已停止!" + else + red "服务未开启!" + fi +} + +addDomain() { + local workdir="${installpath}/serv00-play/domains-support" + if [[ ! -e $workdir ]]; then + mkdir -p $workdir + fi + cd $workdir + domain="" + webIp="" + if ! makeWWW "" "" "php" "y"; then + echo "绑定域名失败!" + return 1 + fi + target="$installpath/domains/$domain/public_html" + if [[ ! -e "$target" ]]; then + red "目标目录不存在!" + fi + + while true; do + echo "建站样式选择:" + echo "1. 樱花博客" + echo "2. 人力资源管理系统" + echo "3. 德一教育系统后台" + echo "4. 自定义网站" + echo "0. 返回上一级" + + read -p "你的选择: " choice + + case $choice in + 1) + echo "你选择了樱花博客" + break + ;; + 2) + echo "你选择了人力资源管理系统" + break + ;; + 3) + echo "你选择了德一教育系统后台" + break + ;; + 4) + break + ;; + 0) + echo "返回上一级" + return + ;; + *) + echo "无效选择,请重新输入" + ;; + esac + done + + if [[ "$choice" == "1" ]]; then + cp websites/sakura-blog.html $target/index.html + fi + if [[ "$choice" == "2" ]]; then + cp websites/hr.html $target/index.html + fi + if [[ "$choice" == "3" ]]; then + cp websites/deyiedu.html $target/index.html + fi + if [[ "$choice" == "4" ]]; then + read -p "输入网址html文件路径:" input + if [[ -z "$input" ]]; then + red "输入不能为空!" + return 1 + fi + if [[ ! -e "$input" ]]; then + red "文件不存在!" + return 1 + fi + cp "$input" $target/index.html + fi + + add_domain $domain $webIp + if [[ -e "config.json" ]]; then + local api_token=$(jq -r ".API_TOKEN" config.json) + local url=$(jq -r ".URL" config.json) + if [[ -z "$api_token" || -z "$url" ]]; then + red "配置文件错误,请检查!" + return 1 + fi + read -p "是否录入域名信息到数据库? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" == "y" ]]; then + read -p "请输入注册商名称:" registrar + registrar=${registrar:-"注册商"} + + read -p "请输入注册商链接(可选):" registrar_link + registrar_link=${registrar_link:-""}} + + read -p "请输入注册日期(格式: YYYY-MM-DD):" registrar_date + registrar_date=${registrar_date:-$(date +%Y-%m-%d)} + + read -p "请输入到期日期(格式: YYYY-MM-DD):" expiry_date + expiry_date=${expiry_date:-$(date -d "+1 year" +%Y-%m-%d)} + fi + curl -X POST "https://$url/api/addrec?token=$api_token" \ + -H "Content-Type: application/json" \ + -d "{ + "domain": "$domain", + "registrar": "$registrar", + "registrar_date": "$registrar_date", + "registrar_link": "$registrar_link", + "expiry_date": "$expiry_date", + "service_type": "伪装网站", + "status": "在线" + }" + if [[ $? -ne 0 ]]; then + red "域名信息录入失败!" + return 1 + fi + fi + green "域名的网站安装成功!" +} + +delDomain() { + local workdir="${installpath}/serv00-play/domains-support" + if [[ ! -e $workdir ]]; then + red "未安装,请先安装!" + return 1 + fi + cd $workdir + read -p "请输入要删除的域名:" domain + if [[ -z "$domain" ]]; then + red "输入不能为空!" + return 1 + fi + delete_domain "$domain" + green "域名删除成功!" +} + keepAliveServ() { if ! checkInstalled "serv00-play"; then return 1 @@ -3436,7 +3700,7 @@ showMenu() { options=("安装/更新serv00-play项目" "sun-panel" "webssh" "阅后即焚" "linkalive" "设置保活的项目" "配置sing-box" "运行sing-box" "停止sing-box" "显示sing-box节点信息" "快照恢复" "系统初始化" "前置工作及设置中国时区" "哪吒探针管理" "哪吒面板管理" "设置彩色开机字样" "显示本机IP" - "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "KeepAlive" "卸载") + "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "KeepAlive" "Domains-Support" "卸载") select opt in "${options[@]}"; do case $REPLY in @@ -3516,6 +3780,9 @@ showMenu() { keepAliveServ ;; 26) + DSServ + ;; + 27) uninstall ;; 0) diff --git a/utils.sh b/utils.sh index 0e87b44c..00ca286d 100644 --- a/utils.sh +++ b/utils.sh @@ -781,3 +781,12 @@ start_sing_box() { fi } + +checkCronName() { + local name=$1 + if crontab -l | grep -q "$name"; then + return 0 + else + return 1 + fi +} From 48c8575fdfc3bbbbe896e247f4d1c5f8f308b64b Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:22:49 +0800 Subject: [PATCH 129/210] for test --- utils.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/utils.sh b/utils.sh index 00ca286d..89d517b5 100644 --- a/utils.sh +++ b/utils.sh @@ -782,6 +782,13 @@ start_sing_box() { } +checkCronNameStatus() { + if checkCronName $1; then + green "在线" + else + red "离线" + fi +} checkCronName() { local name=$1 if crontab -l | grep -q "$name"; then From cec2aca285e7b0c50c06b5dd104714f66265c931 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:24:02 +0800 Subject: [PATCH 130/210] for test --- start.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 3c7afacb..9279be51 100755 --- a/start.sh +++ b/start.sh @@ -3198,6 +3198,8 @@ DSServ() { echo "3. 配置" echo "4. 开启服务" echo "5. 停止服务" + echo "9. 返回主菜单" + echo "0. 退出脚本" yellow "---------------------" read -p "请选择:" input @@ -3421,7 +3423,7 @@ addDomain() { "expiry_date": "$expiry_date", "service_type": "伪装网站", "status": "在线" - }" + }" >/dev/null 2>&1 if [[ $? -ne 0 ]]; then red "域名信息录入失败!" return 1 From e54e75b355b9b14105e8b7ca3ccd46444ae8f318 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:25:49 +0800 Subject: [PATCH 131/210] for test --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 9279be51..3bf703d6 100755 --- a/start.sh +++ b/start.sh @@ -3192,7 +3192,7 @@ DSServ() { while true; do yellow "---------------------" echo "Domains-Support:" - echo "服务状态: $(checkCronName domains-support)" + echo "服务状态: $(checkCronNameStatus domains-support)" echo "1. 新增域名" echo "2. 删除域名" echo "3. 配置" From 8247a81cf15eef8290a6bea9847ae12450d118df Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:26:46 +0800 Subject: [PATCH 132/210] for test --- start.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/start.sh b/start.sh index 3bf703d6..55f0fd81 100755 --- a/start.sh +++ b/start.sh @@ -3220,6 +3220,12 @@ DSServ() { 5) stopDs ;; + 9) + break + ;; + 0) + exit 0 + ;; *) echo "无效选项,请重试" ;; From 2f0a1d4509aed3305bd514e3b4041b7432c82a88 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:29:15 +0800 Subject: [PATCH 133/210] for test --- start.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 55f0fd81..9af4d191 100755 --- a/start.sh +++ b/start.sh @@ -3375,13 +3375,25 @@ addDomain() { done if [[ "$choice" == "1" ]]; then - cp websites/sakura-blog.html $target/index.html + cp websites/sakura.html $target/index.html + if [ $? -ne 0 ]; then + red "安装失败!" + return 1 + fi fi if [[ "$choice" == "2" ]]; then cp websites/hr.html $target/index.html + if [ $? -ne 0 ]; then + red "安装失败!" + return 1 + fi fi if [[ "$choice" == "3" ]]; then cp websites/deyiedu.html $target/index.html + if [ $? -ne 0 ]; then + red "安装失败!" + return 1 + fi fi if [[ "$choice" == "4" ]]; then read -p "输入网址html文件路径:" input From 61af9feeddeb915338b83943245823e36ecc425a Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:35:10 +0800 Subject: [PATCH 134/210] for test --- start.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/start.sh b/start.sh index 9af4d191..b86a2d14 100755 --- a/start.sh +++ b/start.sh @@ -3251,11 +3251,12 @@ doDsConfig() { red "输入不能为空!" return 1 fi - read -p "请输入URL:" url + read -p "请输入URL的域名:" url if [[ -z "$url" ]]; then red "输入不能为空!" return 1 fi + url=$(echo "$url" | sed -E 's|^https?://||') write_ds_config $api_token $url } @@ -3277,7 +3278,7 @@ configDs() { if ! doDsConfig; then return 1 fi - + green "配置成功!" } startDs() { @@ -3297,7 +3298,7 @@ startDs() { red "配置文件错误,请检查!" return 1 fi - echo "0 9 * * * curl -H \"Authorization: Bearer $api_token\" $url/api/check > /dev/null 2>&1 " >>mycron + echo "0 9 * * * curl -H \"Authorization: Bearer $api_token\" https://$url/api/check > /dev/null 2>&1 " >>mycron crontab mycron >/dev/null 2>&1 rm mycron From 7a8af780d9e49839a134eaed141b275d7307f585 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:36:43 +0800 Subject: [PATCH 135/210] for test --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index b86a2d14..530fbc0c 100755 --- a/start.sh +++ b/start.sh @@ -3269,7 +3269,7 @@ configDs() { cd $workdir if [[ -e "config.json" ]]; then cat config.json - red "配置文件已存在,是否覆盖?[y/n] [n]:" input + read -p "配置文件已存在,是否覆盖?[y/n] [n]:" input input=${input:-n} if [[ "$input" == "n" ]]; then return 1 From 5481bcb70d692cb934e89031b23127a3f118c764 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:46:59 +0800 Subject: [PATCH 136/210] for test --- start.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/start.sh b/start.sh index 530fbc0c..7f0392c8 100755 --- a/start.sh +++ b/start.sh @@ -3434,16 +3434,16 @@ addDomain() { fi curl -X POST "https://$url/api/addrec?token=$api_token" \ -H "Content-Type: application/json" \ - -d "{ - "domain": "$domain", - "registrar": "$registrar", - "registrar_date": "$registrar_date", - "registrar_link": "$registrar_link", - "expiry_date": "$expiry_date", + -d '{ + "domain": "'"$domain"'", + "registrar": "'"$registrar"'", + "registrar_date": "'"$registrar_date"'", + "registrar_link": "'"$registrar_link"'", + "expiry_date": "'"$expiry_date"'", "service_type": "伪装网站", "status": "在线" - }" >/dev/null 2>&1 - if [[ $? -ne 0 ]]; then + }' >/dev/null 2>&1 + if [ $? -ne 0 ]; then red "域名信息录入失败!" return 1 fi From 611d988b334147154e81d97976b79003067f7199 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:49:46 +0800 Subject: [PATCH 137/210] for test --- start.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/start.sh b/start.sh index 7f0392c8..028f9d88 100755 --- a/start.sh +++ b/start.sh @@ -3334,6 +3334,10 @@ addDomain() { echo "绑定域名失败!" return 1 fi + if ! applyLE $domain $webIp; then + echo "申请证书失败!" + return 1 + fi target="$installpath/domains/$domain/public_html" if [[ ! -e "$target" ]]; then red "目标目录不存在!" From 2e79a7ef23921df58cb49f951b32cb600f21f6e9 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 00:59:22 +0800 Subject: [PATCH 138/210] for test --- start.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/start.sh b/start.sh index 028f9d88..de0d1a30 100755 --- a/start.sh +++ b/start.sh @@ -3338,6 +3338,7 @@ addDomain() { echo "申请证书失败!" return 1 fi + cd $workdir target="$installpath/domains/$domain/public_html" if [[ ! -e "$target" ]]; then red "目标目录不存在!" From 98dcf2dd98bc2a6208ac0f6de32eab5d6ac9e6e4 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 01:01:10 +0800 Subject: [PATCH 139/210] for test --- start.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/start.sh b/start.sh index de0d1a30..8363cfe0 100755 --- a/start.sh +++ b/start.sh @@ -3463,6 +3463,7 @@ delDomain() { return 1 fi cd $workdir + print_domains read -p "请输入要删除的域名:" domain if [[ -z "$domain" ]]; then red "输入不能为空!" From ed718fcc166faef0fd02e77b5568695034564992 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 01:34:33 +0800 Subject: [PATCH 140/210] for test --- start.sh | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 8363cfe0..f7335bce 100755 --- a/start.sh +++ b/start.sh @@ -3386,6 +3386,9 @@ addDomain() { red "安装失败!" return 1 fi + read -p "输入你的名字([xx的博客]里的xx):" name + name=${name:-"樱花"} + sed -i "s/xx/$name/g" $target/index.html fi if [[ "$choice" == "2" ]]; then cp websites/hr.html $target/index.html @@ -3412,6 +3415,10 @@ addDomain() { return 1 fi cp "$input" $target/index.html + if [ $? -ne 0 ]; then + red "安装失败!" + return 1 + fi fi add_domain $domain $webIp @@ -3436,6 +3443,12 @@ addDomain() { read -p "请输入到期日期(格式: YYYY-MM-DD):" expiry_date expiry_date=${expiry_date:-$(date -d "+1 year" +%Y-%m-%d)} + + local host=$(hostname) + local username=$(whoami) + + read -p "请输入备注(可选):" memo + memo=${memo:-"$host-$username"} fi curl -X POST "https://$url/api/addrec?token=$api_token" \ -H "Content-Type: application/json" \ @@ -3446,7 +3459,8 @@ addDomain() { "registrar_link": "'"$registrar_link"'", "expiry_date": "'"$expiry_date"'", "service_type": "伪装网站", - "status": "在线" + "status": "在线", + "memo": "'"$memo"'" }' >/dev/null 2>&1 if [ $? -ne 0 ]; then red "域名信息录入失败!" From a78d19e5be1392b51c802c5c735d817272eacd0f Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 01:42:08 +0800 Subject: [PATCH 141/210] for test --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index f7335bce..22e712d2 100755 --- a/start.sh +++ b/start.sh @@ -3388,7 +3388,7 @@ addDomain() { fi read -p "输入你的名字([xx的博客]里的xx):" name name=${name:-"樱花"} - sed -i "s/xx/$name/g" $target/index.html + sed -i.bak "s|xx|$name|g" $target/index.html fi if [[ "$choice" == "2" ]]; then cp websites/hr.html $target/index.html From 2f7fb324edca8f6b064ee24225e3e550bcf58314 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 02:01:18 +0800 Subject: [PATCH 142/210] for test --- ssl/cronSSL.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ssl/cronSSL.sh b/ssl/cronSSL.sh index f3e5f24f..e4ce9e42 100644 --- a/ssl/cronSSL.sh +++ b/ssl/cronSSL.sh @@ -25,4 +25,11 @@ if [[ "$resp" =~ .*succesfully.*$ ]]; then ./tgsend.sh "$msg" fi fi +elif [[ "$resp" =~ .*already.*$ ]]; then + echo "域名($domain)的SSL证书已存在,无需重复申请!" + crontab -l | grep -v "$domain" >tmpcron + crontab tmpcron + rm -rf tmpcron +else + echo "申请SSL证书失败,请检查域名($domain)是否正确!" fi From 1e44313836c39245cfd8c6a09ff4168d61ae1bfb Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 02:12:12 +0800 Subject: [PATCH 143/210] ok --- start.sh | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 22e712d2..a93adf95 100755 --- a/start.sh +++ b/start.sh @@ -3478,11 +3478,25 @@ delDomain() { fi cd $workdir print_domains - read -p "请输入要删除的域名:" domain + read -p "请输入要删除的域名(-1删除所有,0返回上级菜单):" domain if [[ -z "$domain" ]]; then red "输入不能为空!" return 1 fi + if [[ "$domain" == "-1" ]]; then + read -p "是否删除所有域名? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" != "y" ]]; then + return 1 + fi + delete_all_domains + rm -rf "${installpath}/serv00-play/domains-support" + green "删除成功!" + return 0 + fi + if [[ "$domain" == "0" ]]; then + return 0 + fi delete_domain "$domain" green "域名删除成功!" } From 57440b0ef5741b918148fa8d506808d011f5104e Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 15:29:37 +0800 Subject: [PATCH 144/210] ok --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index a93adf95..7e6c6b20 100755 --- a/start.sh +++ b/start.sh @@ -3442,7 +3442,7 @@ addDomain() { registrar_date=${registrar_date:-$(date +%Y-%m-%d)} read -p "请输入到期日期(格式: YYYY-MM-DD):" expiry_date - expiry_date=${expiry_date:-$(date -d "+1 year" +%Y-%m-%d)} + expiry_date=${expiry_date:-$(date -v+1y +%Y-%m-%d)} local host=$(hostname) local username=$(whoami) From 8ea186a83b7ac13c64e8d4a6fc6cc675782375cc Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 12 Apr 2025 15:43:56 +0800 Subject: [PATCH 145/210] ok --- start.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 7e6c6b20..77115d46 100755 --- a/start.sh +++ b/start.sh @@ -3298,7 +3298,7 @@ startDs() { red "配置文件错误,请检查!" return 1 fi - echo "0 9 * * * curl -H \"Authorization: Bearer $api_token\" https://$url/api/check > /dev/null 2>&1 " >>mycron + echo "0 9 * * * curl -H \"Authorization: Bearer $api_token\" https://$url/api/check > /dev/null 2>&1 #domains-support" >>mycron crontab mycron >/dev/null 2>&1 rm mycron @@ -3460,6 +3460,7 @@ addDomain() { "expiry_date": "'"$expiry_date"'", "service_type": "伪装网站", "status": "在线", + "tgsend": "1", "memo": "'"$memo"'" }' >/dev/null 2>&1 if [ $? -ne 0 ]; then From 6a7fc4e1d60dc7676b8c87a485c58b6b03ec872d Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 15 Apr 2025 10:43:22 +0800 Subject: [PATCH 146/210] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmtg=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/start.sh b/start.sh index 8fe421a1..61d368ed 100755 --- a/start.sh +++ b/start.sh @@ -1673,6 +1673,12 @@ uninstallMtg() { } installMtg() { + local workedir="${installpath}/serv00-play/dmtg" + if [ ! -e "${workedir}" ]; then + mkdir -p "${workedir}" + fi + cd ${workedir} + if [ ! -e "mtg" ]; then # read -p "请输入使用密码:" password if ! checkDownload "mtg"; then From a117f213034f0f7809018fb2f267a2df0843efdb Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 15 Apr 2025 14:25:39 +0800 Subject: [PATCH 147/210] mtg --- utils.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils.sh b/utils.sh index 0e87b44c..2846f193 100644 --- a/utils.sh +++ b/utils.sh @@ -260,7 +260,7 @@ getDoMain() { if isServ00; then echo -n "serv00.com" else - echo -n "useruno.com" + echo -n "hostuno.com" fi } From 9561f2f359b7fc645db1d686414b8bf9d5c6cf99 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 16 Apr 2025 10:38:17 +0800 Subject: [PATCH 148/210] 250416 --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index cca72a3e..c2558c94 100755 --- a/start.sh +++ b/start.sh @@ -3442,7 +3442,7 @@ addDomain() { registrar=${registrar:-"注册商"} read -p "请输入注册商链接(可选):" registrar_link - registrar_link=${registrar_link:-""}} + registrar_link=${registrar_link:-""} read -p "请输入注册日期(格式: YYYY-MM-DD):" registrar_date registrar_date=${registrar_date:-$(date +%Y-%m-%d)} From 59fc55a1907498abbef570d4c269a2b301136c45 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 7 May 2025 16:36:14 +0800 Subject: [PATCH 149/210] 20250507 --- start.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/start.sh b/start.sh index c2558c94..c96f1b07 100755 --- a/start.sh +++ b/start.sh @@ -2740,16 +2740,16 @@ makeWWW() { fi # 自定义域名的特殊处理 - if [[ $is_self_domain -eq 1 ]]; then - host="$(hostname | cut -d '.' -f 1)" - sno=${host/s/web} - default_webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') - rid=$(devil dns list "$domain" | grep "$default_webIp" | awk '{print $1}') - resp=$(echo "y" | devil dns del "$domain" $rid) - #echo "resp:$resp" - else - webIp=$(get_default_webip) - fi + # if [[ $is_self_domain -eq 1 ]]; then + # host="$(hostname | cut -d '.' -f 1)" + # sno=${host/s/web} + # default_webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') + # rid=$(devil dns list "$domain" | grep "$default_webIp" | awk '{print $1}') + # resp=$(echo "y" | devil dns del "$domain" $rid) + # #echo "resp:$resp" + # else + # webIp=$(get_default_webip) + # fi # 保存信息 if [[ "$www_type" == "proxy" ]]; then cat >config.json < Date: Wed, 7 May 2025 18:49:38 +0800 Subject: [PATCH 150/210] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- singbox/start.sh | 1 - start.sh | 165 +++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 138 insertions(+), 28 deletions(-) diff --git a/singbox/start.sh b/singbox/start.sh index b7d41e1e..4464c0be 100644 --- a/singbox/start.sh +++ b/singbox/start.sh @@ -98,7 +98,6 @@ EOF if [[ -e "${installpath}/serv00-play/linkalive/linkAlive.sh" ]]; then local domain=$(getUserDoMain) domain="${domain,,}" - local linkBaseurl="https://la.fkj.pp.ua" if [[ -e "${installpath}/domains/$domain/public_nodejs/config.json" ]]; then token=$(jq -r ".token" "${installpath}/domains/$domain/public_nodejs/config.json") if [[ -n "$token" ]]; then diff --git a/start.sh b/start.sh index c2558c94..d5fa3f70 100755 --- a/start.sh +++ b/start.sh @@ -2188,15 +2188,20 @@ portServ() { } cronLE() { - read -p "请输入定时运行的时间间隔(小时[1-23]):" tm - tm=${tm:-""} - if [[ -z "$tm" ]]; then - red "时间不能为空" - return 1 - fi - if [[ $tm -lt 1 || $tm -gt 23 ]]; then - red "输入非法!" - return 1 + local nointeraction=$1 + if [[ -n "$nointeraction" ]]; then + tm=1 + else + read -p "请输入定时运行的时间间隔(小时[1-23]):" tm + tm=${tm:-""} + if [[ -z "$tm" ]]; then + red "时间不能为空" + return 1 + fi + if [[ $tm -lt 1 || $tm -gt 23 ]]; then + red "输入非法!" + return 1 + fi fi crontab -l >le.cron echo "0 */$tm * * * $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron @@ -2215,6 +2220,7 @@ get_default_webip() { applyLE() { local domain=$1 local webIp=$2 + local nointeraction=$3 workpath="${installpath}/serv00-play/ssl" cd "$workpath" @@ -2229,19 +2235,24 @@ applyLE() { inCron="0" if crontab -l | grep -F "$domain" >/dev/null 2>&1; then inCron="1" - echo "该域名已配置定时申请证书,是否删除定时配置记录,改为手动申请?[y/n] [n]:" input - input=${input:-n} + if [[ -z "$nointeraction" ]]; then + echo "该域名已配置定时申请证书,是否删除定时配置记录,改为手动申请?[y/n] [n]:" input + input=${input:-n} - if [[ "$input" == "y" ]]; then + if [[ "$input" == "y" ]]; then + crontab -l | grep -v "$domain" | crontab - + fi + else crontab -l | grep -v "$domain" | crontab - fi fi if [[ -z "$webIp" ]]; then read -p "是否指定webip? [y/n] [n]:" input input=${input:-n} + if [[ "$input" == "y" ]]; then read -p "请输入webip:" webIp - if [[ -z "webIp" ]]; then + if [[ -z "$webIp" ]]; then red "webip 不能为空!!!" return 1 fi @@ -2256,10 +2267,18 @@ applyLE() { if [[ ! "$resp" =~ .*succesfully.*$ ]]; then red "申请ssl证书失败!$resp" if [[ "$inCron" == "0" ]]; then - read -p "是否配置定时任务自动申请SSL证书? [y/n] [n]:" input - input=${input:-n} + if [[ -z "$nointeraction" ]]; then + read -p "是否配置定时任务自动申请SSL证书? [y/n] [n]:" input + input=${input:-n} + else + input="y" + fi if [[ "$input" == "y" ]]; then - cronLE + if [[ -z "$nointeraction" ]]; then + cronLE + else + cronLE $nointeraction + fi fi fi else @@ -2696,6 +2715,7 @@ makeWWW() { local port=$2 local www_type=${3:-"proxy"} local input=${4:-""} + local domain=${5:-""} echo "正在处理服务IP,请等待..." is_self_domain=0 @@ -2705,18 +2725,22 @@ makeWWW() { webIp=$default_webip fi green "可用webip是: $webIp, 默认webip是: $default_webip" - if [[ -z "$input" ]]; then - read -p "是否使用自定义域名? [y/n] [n]:" input - input=${input:-n} - fi - if [[ "$input" == "y" ]]; then - is_self_domain=1 - read -p "请输入域名(确保此前域名已指向webip):" domain - else - if [[ -z ${proc:""} ]]; then - read -p "请输入默认域名的二级域名的前缀(如二级域名 sub.main.com, 则填sub):" proc + if [[ -z "$domain" ]]; then + if [[ -z "$input" ]]; then + read -p "是否使用自定义域名? [y/n] [n]:" input + input=${input:-n} fi - domain=$(getUserDoMain "$proc") + if [[ "$input" == "y" ]]; then + is_self_domain=1 + read -p "请输入域名(确保此前域名已指向webip):" domain + else + if [[ -z ${proc:""} ]]; then + read -p "请输入默认域名的二级域名的前缀(如二级域名 sub.main.com, 则填sub):" proc + fi + domain=$(getUserDoMain "$proc") + fi + else + is_self_domain=1 fi if [[ -z "$domain" ]]; then @@ -3204,6 +3228,7 @@ DSServ() { echo "3. 配置" echo "4. 开启服务" echo "5. 停止服务" + echo "6. 批量新增域名" echo "9. 返回主菜单" echo "0. 退出脚本" yellow "---------------------" @@ -3226,6 +3251,9 @@ DSServ() { 5) stopDs ;; + 6) + batchAddDomains + ;; 9) break ;; @@ -3251,6 +3279,89 @@ write_ds_config() { EOF } + +batchAddDomains() { + batchAddDomains() { + local workdir="${installpath}/serv00-play/domains-support" + if [[ ! -e $workdir ]]; then + mkdir -p $workdir + fi + cd $workdir + + read -p "请输入包含域名的文件路径(一行一个域名): " domains_file + if [[ ! -f "$domains_file" ]]; then + red "文件不存在,请检查路径!" + return 1 + fi + + echo "建站样式选择:" + echo "1. 樱花博客" + echo "2. 人力资源管理系统" + echo "3. 德一教育系统后台" + echo "4. 自定义网站" + read -p "请选择建站样式(默认: 1): " style_choice + style_choice=${style_choice:-1} + + local custom_file="" + if [[ "$style_choice" == "4" ]]; then + read -p "请输入自定义网站HTML文件路径: " custom_file + if [[ ! -f "$custom_file" ]]; then + red "自定义HTML文件不存在,请检查路径!" + return 1 + fi + fi + + while IFS= read -r domain; do + domain=$(echo "$domain" | xargs) # 去除前后空格 + if [[ -z "$domain" ]]; then + continue + fi + + domain="${domain,,}" # 转小写 + domainPath="$installpath/domains/$domain/public_html" + webIp="" + echo "正在处理域名: $domain" + if ! makeWWW "" "" "php" "y" "$domain"; then + red "绑定域名 $domain 失败!" + continue + fi + + if ! applyLE "$domain" "$webIp" "y"; then + red "申请证书失败: $domain" + fi + + if [[ ! -d "$domainPath" ]]; then + red "目标目录不存在: $domainPath" + continue + fi + + case "$style_choice" in + 1) + cp websites/sakura.html "$domainPath/index.html" + sed -i.bak "s|xx|樱花|g" "$domainPath/index.html" + ;; + 2) + cp websites/hr.html "$domainPath/index.html" + ;; + 3) + cp websites/deyiedu.html "$domainPath/index.html" + ;; + 4) + cp "$custom_file" "$domainPath/index.html" + ;; + *) + red "无效的建站样式选择!" + continue + ;; + esac + + add_domain "$domain" "$webIp" + green "域名 $domain 的网站安装成功!" + done <"$domains_file" + + green "批量新增域名网站完成!" + } +} doDsConfig() { read -p "请输入api_token:" api_token if [[ -z "$api_token" ]]; then From 9d2d105465265807e7a7826fb6a57c30382a255f Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 7 May 2025 22:00:25 +0800 Subject: [PATCH 151/210] . --- start.sh | 139 +++++++++++++++++++++++++++---------------------------- 1 file changed, 69 insertions(+), 70 deletions(-) diff --git a/start.sh b/start.sh index d5fa3f70..3bc957e3 100755 --- a/start.sh +++ b/start.sh @@ -3281,87 +3281,86 @@ EOF } batchAddDomains() { - batchAddDomains() { - local workdir="${installpath}/serv00-play/domains-support" - if [[ ! -e $workdir ]]; then - mkdir -p $workdir - fi - cd $workdir + local workdir="${installpath}/serv00-play/domains-support" + if [[ ! -e $workdir ]]; then + mkdir -p $workdir + fi + cd $workdir + + read -p "请输入包含域名的文件路径(一行一个域名): " domains_file + if [[ ! -f "$domains_file" ]]; then + red "文件不存在,请检查路径!" + return 1 + fi + + echo "建站样式选择:" + echo "1. 樱花博客" + echo "2. 人力资源管理系统" + echo "3. 德一教育系统后台" + echo "4. 自定义网站" + read -p "请选择建站样式(默认: 1): " style_choice + style_choice=${style_choice:-1} - read -p "请输入包含域名的文件路径(一行一个域名): " domains_file - if [[ ! -f "$domains_file" ]]; then - red "文件不存在,请检查路径!" + local custom_file="" + if [[ "$style_choice" == "4" ]]; then + read -p "请输入自定义网站HTML文件路径: " custom_file + if [[ ! -f "$custom_file" ]]; then + red "自定义HTML文件不存在,请检查路径!" return 1 fi + fi - echo "建站样式选择:" - echo "1. 樱花博客" - echo "2. 人力资源管理系统" - echo "3. 德一教育系统后台" - echo "4. 自定义网站" - read -p "请选择建站样式(默认: 1): " style_choice - style_choice=${style_choice:-1} - - local custom_file="" - if [[ "$style_choice" == "4" ]]; then - read -p "请输入自定义网站HTML文件路径: " custom_file - if [[ ! -f "$custom_file" ]]; then - red "自定义HTML文件不存在,请检查路径!" - return 1 - fi + while IFS= read -r domain; do + domain=$(echo "$domain" | xargs) # 去除前后空格 + if [[ -z "$domain" ]]; then + continue fi - while IFS= read -r domain; do - domain=$(echo "$domain" | xargs) # 去除前后空格 - if [[ -z "$domain" ]]; then - continue - fi + domain="${domain,,}" # 转小写 + domainPath="$installpath/domains/$domain/public_html" + webIp="" + echo "正在处理域名: $domain" + if ! makeWWW "" "" "php" "y" "$domain"; then + red "绑定域名 $domain 失败!" + continue + fi - domain="${domain,,}" # 转小写 - domainPath="$installpath/domains/$domain/public_html" - webIp="" - echo "正在处理域名: $domain" - if ! makeWWW "" "" "php" "y" "$domain"; then - red "绑定域名 $domain 失败!" - continue - fi + if ! applyLE "$domain" "$webIp" "y"; then + red "申请证书失败: $domain" + fi - if ! applyLE "$domain" "$webIp" "y"; then - red "申请证书失败: $domain" - fi + if [[ ! -d "$domainPath" ]]; then + red "目标目录不存在: $domainPath" + continue + fi - if [[ ! -d "$domainPath" ]]; then - red "目标目录不存在: $domainPath" - continue - fi + case "$style_choice" in + 1) + cp websites/sakura.html "$domainPath/index.html" + sed -i.bak "s|xx|樱花|g" "$domainPath/index.html" + ;; + 2) + cp websites/hr.html "$domainPath/index.html" + ;; + 3) + cp websites/deyiedu.html "$domainPath/index.html" + ;; + 4) + cp "$custom_file" "$domainPath/index.html" + ;; + *) + red "无效的建站样式选择!" + continue + ;; + esac - case "$style_choice" in - 1) - cp websites/sakura.html "$domainPath/index.html" - sed -i.bak "s|xx|樱花|g" "$domainPath/index.html" - ;; - 2) - cp websites/hr.html "$domainPath/index.html" - ;; - 3) - cp websites/deyiedu.html "$domainPath/index.html" - ;; - 4) - cp "$custom_file" "$domainPath/index.html" - ;; - *) - red "无效的建站样式选择!" - continue - ;; - esac - - add_domain "$domain" "$webIp" - green "域名 $domain 的网站安装成功!" - done <"$domains_file" - - green "批量新增域名网站完成!" - } + add_domain "$domain" "$webIp" + green "域名 $domain 的网站安装成功!" + done <"$domains_file" + + green "批量新增域名网站完成!" } + doDsConfig() { read -p "请输入api_token:" api_token if [[ -z "$api_token" ]]; then From cff6f4124f24c81c553213c45f37719696936cbc Mon Sep 17 00:00:00 2001 From: frankiejun Date: Wed, 7 May 2025 23:30:43 +0800 Subject: [PATCH 152/210] . --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 656ea879..c6e4be5e 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,4 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。 本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 代码、数据及图片均有所属版权, 如转载须注明来源。 使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。 -## Star History -[![Star History Chart](https://api.star-history.com/svg?repos=frankiejun/serv00-play&type=Date)](https://www.star-history.com/#frankiejun/serv00-play&Date) From 73b803eae239e28473bdd5295836905d466b2aa7 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Fri, 9 May 2025 21:59:44 +0800 Subject: [PATCH 153/210] =?UTF-8?q?fixed:=20webip=E4=BC=A0=E5=8F=82?= =?UTF-8?q?=E5=88=B0applyLE=E4=B8=A2=E5=A4=B1=E9=97=AE=E9=A2=98(=E5=90=8D?= =?UTF-8?q?=E5=AD=97=E7=A9=BA=E9=97=B4=E6=B1=A1=E6=9F=93)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/start.sh b/start.sh index c35b816b..2cc7b7e3 100755 --- a/start.sh +++ b/start.sh @@ -480,7 +480,7 @@ generate_config() { $([[ "$type" == "2" || "$type" =~ ^(3|4)\.[0-9]+$ ]] && cat temphy2.json) ], "outbounds": [ - $([[ "$outbound" == "1" ]] && make_outbound_wireguard) + $([[ "$outbound" == "1" ]] && make_outbound_wireguard) $([[ "$outbound" == "2" ]] && cat temp_outbound_socks5.json && rm -rf temp_outbound_socks5.json) { "type": "direct", @@ -508,7 +508,7 @@ generate_config() { "protocol": "dns", "outbound": "dns-out" }, - { + { "ip_is_private": true, "outbound": "direct" }, @@ -2218,52 +2218,53 @@ get_default_webip() { } applyLE() { - local domain=$1 - local webIp=$2 + local l_domain=$1 + local l_webip=$2 local nointeraction=$3 workpath="${installpath}/serv00-play/ssl" cd "$workpath" - if [[ -z "$domain" ]]; then + #echo "domain=$l_domain, webip=$l_webip, nointeraction=$nointeraction" + if [[ -z "$l_domain" ]]; then read -p "请输入待申请证书的域名:" domain - domain=${domain:-""} - if [[ -z "$domain" ]]; then + l_domain=${l_domain:-""} + if [[ -z "$l_domain" ]]; then red "域名不能为空" return 1 fi fi inCron="0" - if crontab -l | grep -F "$domain" >/dev/null 2>&1; then + if crontab -l | grep -F "$l_domain" >/dev/null 2>&1; then inCron="1" if [[ -z "$nointeraction" ]]; then echo "该域名已配置定时申请证书,是否删除定时配置记录,改为手动申请?[y/n] [n]:" input input=${input:-n} if [[ "$input" == "y" ]]; then - crontab -l | grep -v "$domain" | crontab - + crontab -l | grep -v "$l_domain" | crontab - fi else - crontab -l | grep -v "$domain" | crontab - + crontab -l | grep -v "$l_domain" | crontab - fi fi - if [[ -z "$webIp" ]]; then + if [[ -z "$l_webip" ]]; then read -p "是否指定webip? [y/n] [n]:" input input=${input:-n} if [[ "$input" == "y" ]]; then - read -p "请输入webip:" webIp - if [[ -z "$webIp" ]]; then - red "webip 不能为空!!!" + read -p "请输入webIp:" l_webip + if [[ -z "$l_webip" ]]; then + red "webIp 不能为空!!!" return 1 fi else host="$(hostname | cut -d '.' -f 1)" sno=${host/s/web} - webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') + l_webip=$(devil vhost list public | grep "$sno" | awk '{print $1}') fi fi - #echo "申请证书时,webip是: $webIp" - resp=$(devil ssl www add $webIp le le $domain) + #echo "申请证书时,webip是: $l_webip" + resp=$(devil ssl www add $l_webip le le $l_domain) if [[ ! "$resp" =~ .*succesfully.*$ ]]; then red "申请ssl证书失败!$resp" if [[ "$inCron" == "0" ]]; then @@ -2715,7 +2716,7 @@ makeWWW() { local port=$2 local www_type=${3:-"proxy"} local input=${4:-""} - local domain=${5:-""} + domain=${5:-"$domain"} echo "正在处理服务IP,请等待..." is_self_domain=0 @@ -3450,7 +3451,8 @@ addDomain() { echo "绑定域名失败!" return 1 fi - if ! applyLE $domain $webIp; then + #echo "after makeWWW, domain=$domain,webIp=$webIp" + if ! applyLE "$domain" "$webIp" "n"; then echo "申请证书失败!" return 1 fi @@ -3568,7 +3570,7 @@ addDomain() { fi curl -X POST "https://$url/api/addrec?token=$api_token" \ -H "Content-Type: application/json" \ - -d '{ + -d '{ "domain": "'"$domain"'", "registrar": "'"$registrar"'", "registrar_date": "'"$registrar_date"'", @@ -3828,7 +3830,7 @@ setKeepAliveInterval() { linkAliveStatment() { cat < Date: Fri, 9 May 2025 23:15:55 +0800 Subject: [PATCH 154/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 2cc7b7e3..f6c00120 100755 --- a/start.sh +++ b/start.sh @@ -1102,6 +1102,9 @@ uninstall() { InitServer() { read -p "$(red "将初始化帐号系统,要继续?[y/n] [n]:")" input input=${input:-n} + if [[ "$input" != "y" ]]; then + return + fi read -p "是否保留用户配置?[y/n] [y]:" saveProfile saveProfile=${saveProfile:-y} @@ -1111,7 +1114,7 @@ InitServer() { killUserProc green "清理磁盘中..." if [[ "$saveProfile" == "y" ]] || [[ "$saveProfile" == "Y" ]]; then - rm -rf ~/* 2>/dev/null + find ~ -mindepth 1 -maxdepth 1 ! -name "domains" ! -name "backups" ! -name "repo" ! -name "mail" ! -name ".*" -exec rm -rf {} + >/dev/null 2>&1 else rm -rf ~/* ~/.* 2>/dev/null clean_all_domains From c1d69b072aa68ba81b2952d9ce7f2eb4c0aaaa43 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Thu, 5 Jun 2025 14:43:01 +0800 Subject: [PATCH 155/210] dartnode --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c6e4be5e..73550242 100644 --- a/README.md +++ b/README.md @@ -106,4 +106,4 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。 本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 代码、数据及图片均有所属版权, 如转载须注明来源。 使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。 - +[![Powered by DartNode](https://dartnode.com/branding/DN-Open-Source-sm.png)](https://dartnode.com 'Powered by DartNode - Free VPS for Open Source') From e01790000855fcc7df0230b872e0829c06570d9f Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 8 Jun 2025 21:00:32 +0800 Subject: [PATCH 156/210] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=81=E4=B9=A6?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=90=8E=E6=B2=A1=E6=9C=89tg=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ssl/cronSSL.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ssl/cronSSL.sh b/ssl/cronSSL.sh index e4ce9e42..a1a62229 100644 --- a/ssl/cronSSL.sh +++ b/ssl/cronSSL.sh @@ -14,7 +14,11 @@ if [[ "$resp" =~ .*succesfully.*$ ]]; then crontab -l | grep -v "$domain" >tmpcron crontab tmpcron rm -rf tmpcron - config="../config.json" + if grep "telegram_token" ../config.json; then + config="../config.json" + else + config="../msg.json" + fi if [ -e "$config" ]; then TELEGRAM_TOKEN=$(jq -r ".telegram_token" "$config") TELEGRAM_USERID=$(jq -r ".telegram_userid" "$config") From c208941da232e88298490aeee68be2f85a90f6e3 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sun, 8 Jun 2025 21:22:47 +0800 Subject: [PATCH 157/210] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=8A=A0=E5=85=A5=E5=88=B0phpconfig.json?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index f6c00120..79b655e9 100755 --- a/start.sh +++ b/start.sh @@ -2288,6 +2288,7 @@ applyLE() { else green "证书申请成功!" fi + cd - } selfSSL() { @@ -2350,7 +2351,7 @@ EOF fi echo "导入成功!" - + cd - } domainSSLServ() { From 81d54cce40973de502e8ca4abb5a30f1d278f714 Mon Sep 17 00:00:00 2001 From: frankiejun Date: Tue, 12 Aug 2025 19:16:05 +0800 Subject: [PATCH 158/210] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E8=B5=9E=E5=8A=A9=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 73550242..9fe8b82e 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,6 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。 | 赞助人 | 赞助方式 | 备注 | | ---------------------------------------------------------------------------------------------------------------------- | ------------------------ | ---- | -| [HostVds](https://hostvds.com/?affiliate_uuid=2b9179a7-6900-4636-bed2-182b4db0168e) | 提供服务器 | - | | [YXVM](https://support.nodeget.com/page/promotion?id=105) 和 [NodeSupport](https://github.com/NodeSeekDev/NodeSupport) | 赞助本项目提供永久服务器 | -- | ## 项目鸣谢 @@ -105,5 +104,3 @@ _捐赠将是对我最大的支持,它将激励我持续的创新和创作。 本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 代码、数据及图片均有所属版权, 如转载须注明来源。 使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。 - -[![Powered by DartNode](https://dartnode.com/branding/DN-Open-Source-sm.png)](https://dartnode.com 'Powered by DartNode - Free VPS for Open Source') From d0b42beeaef3f1ce18b4d51edeb30e1aee50b65a Mon Sep 17 00:00:00 2001 From: frankiejun Date: Sat, 8 Nov 2025 01:12:50 +0800 Subject: [PATCH 159/210] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E7=95=8C=E9=9D=A2=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 125 insertions(+), 12 deletions(-) diff --git a/start.sh b/start.sh index 79b655e9..f77ff49e 100755 --- a/start.sh +++ b/start.sh @@ -2824,6 +2824,125 @@ startSunPanel() { } +manageWxPushSkin() { + if ! checkInstalled "serv00-play"; then + return 1 + fi + while true; do + yellow "---------------------" + echo "1. 安装" + echo "2. 卸载" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + + case $input in + 1) + installWxPushSkin + ;; + 2) + uninstallWxPushSkin + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu +} + +installWxPushSkin() { + local workdir="${installpath}/serv00-play/wxpushskin" + + if [[ ! -e "$workdir" ]]; then + mkdir -p $workdir + fi + cd $workdir + + if ! check_domains_empty; then + red "已有安装如下服务,是否继续安装?" + print_domains + read -p "继续安装? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" == "n" ]]; then + return 0 + fi + fi + + domain="" + webIp="" + if ! makeWWW "" "null" php; then + echo "绑定域名失败!" + return 1 + fi + + read -p "是否申请证书? [y/n] [n]:" input + input=${input:-'n'} + if [[ "$input" == "y" ]]; then + echo "正在申请证书,请等待..." + if ! applyLE $domain $webIp; then + echo "申请证书失败!" + return 1 + fi + fi + + domainPath="$installpath/domains/$domain/public_html" + cd $domainPath + echo "正在下载并安装 wxpushskin.html ..." + if ! checkDownload "wxpushskin.html"; then + return + fi + if [ -e "wxpushskin.html" ]; then + mv wxpushskin.html index.html + echo "已安装到 $domainPath/index.html" + else + echo "下载失败!" + return 1 + fi + + cd $workdir + add_domain $domain $webIp + + echo "安装完成!" +} + +uninstallWxPushSkin() { + local workdir="${installpath}/serv00-play/wxpushskin" + + if [[ ! -e "$workdir" ]]; then + echo "已没有可以卸载的服务!" + return 1 + fi + + cd $workdir + + if ! check_domains_empty; then + echo "目前已安装服务的域名有:" + print_domains + read -p "是否删除所有域名服务? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" == "y" ]]; then + delete_all_domains + rm -rf "${installpath}/serv00-play/wxpushskin" + else + read -p "请输入要删除的服务的域名:" domain + delete_domain "$domain" + fi + else + echo "没有可卸载服务!" + echo "目前已安装服务的域名有:" + print_domains + fi + +} + burnAfterReadingServ() { if ! checkInstalled "serv00-play"; then return 1 @@ -2878,7 +2997,7 @@ installBurnReading() { domain="" webIp="" - if ! makeWWW burnreading "null" php; then + if ! makeWWW "" "null" php; then echo "绑定域名失败!" return 1 fi @@ -2938,15 +3057,6 @@ uninstallBurnReading() { echo "目前已安装服务的域名有:" print_domains fi - read -p "是否删除所有域名服务? [y/n] [n]:" input - input=${input:-n} - if [[ "$input" == "y" ]]; then - delete_all_domains - rm -rf "${installpath}/serv00-play/burnreading" - else - read -p "请输入要删除的服务的域名:" domain - delete_domain "$domain" - fi } @@ -3878,7 +3988,7 @@ showMenu() { options=("安装/更新serv00-play项目" "sun-panel" "webssh" "阅后即焚" "linkalive" "设置保活的项目" "配置sing-box" "运行sing-box" "停止sing-box" "显示sing-box节点信息" "快照恢复" "系统初始化" "前置工作及设置中国时区" "哪吒探针管理" "哪吒面板管理" "设置彩色开机字样" "显示本机IP" - "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "KeepAlive" "Domains-Support" "卸载") + "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "KeepAlive" "Domains-Support" "微信消息推送界面管理" "卸载") select opt in "${options[@]}"; do case $REPLY in @@ -3960,7 +4070,10 @@ showMenu() { 26) DSServ ;; - 27) + 27) + manageWxPushSkin + ;; + 28) uninstall ;; 0) From c6d8b43c6fcac4b3e0e91714ec85ad778b7b2fb4 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 29 Nov 2025 18:57:04 +0800 Subject: [PATCH 160/210] wxpush --- .github/workflows/deploy.yml | 2 + .github/workflows/keep.yml | 1 - README.md | 7 +- keepalive.sh | 598 ++++++++++++++++++----------------- revive.sh | 50 +-- wxsend.sh | 52 ++- 6 files changed, 383 insertions(+), 327 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 2ba9de0a..89603073 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -26,6 +26,8 @@ jobs: TELEGRAM_TOKEN: ${{secrets.TELEGRAM_TOKEN}} TELEGRAM_USERID: ${{secrets.TELEGRAM_USERID}} WXSENDKEY: ${{secrets.WXSENDKEY}} + WXPUSH_URL: ${{secrets.WXPUSH_URL}} + WX_TOKEN: ${{secrets.WX_TOKEN}} SENDTYPE: ${{secrets.SENDTYPE}} BUTTON_URL: ${{secrets.BUTTON_URL}} AUTOUPDATE: ${{vars.AUTOUPDATE}} diff --git a/.github/workflows/keep.yml b/.github/workflows/keep.yml index 4a967a0d..5a02fd98 100644 --- a/.github/workflows/keep.yml +++ b/.github/workflows/keep.yml @@ -24,7 +24,6 @@ jobs: HOSTS_JSON: ${{ secrets.HOSTS_JSON }} TELEGRAM_TOKEN: ${{secrets.TELEGRAM_TOKEN}} TELEGRAM_USERID: ${{secrets.TELEGRAM_USERID}} - WXSENDKEY: ${{secrets.WXSENDKEY}} SENDTYPE: ${{secrets.SENDTYPE}} BUTTON_URL: ${{secrets.BUTTON_URL}} AUTOUPDATE: ${{vars.AUTOUPDATE}} diff --git a/README.md b/README.md index 9fe8b82e..75cb13ee 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,9 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st | HOSTS_JSON | 见示例 | 可存放 n 个服务器信息 (必选) | | TELEGRAM_TOKEN | 略 | telegram 机器人的 token (发送 TG 消息必选) | | TELEGRAM_USERID | 略 | 待通知的 teltegram 用户 ID (发送 TG 消息必选) | -| WXSENDKEY | 略 | server 酱的 sendkey,用于接收微信消息 (发送微信消息必选) | +| ~~WXSENDKEY~~ | ~~略~~ | ~~server 酱的 sendkey,用于接收微信消息 (发送微信消息必选)~~ | +| WXPUSH_URL | 略 | [wxpush](https://github.com/frankiejun/wxpush)项目的请求url | +| WX_TOKEN | 略 | [wxpush](https://github.com/frankiejun/wxpush)项目的API_TOKEN | | SENDTYPE | 1 | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | | BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选),支持#HOST,#USER,#PASS 等变量。 | | AUTOUPDATE | Y/N | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | @@ -48,7 +50,8 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st 关于如何配置 Telegram 以实现消息推送,可以看 [这个视频](https://www.youtube.com/watch?v=l8fPnMfq86c&t=3s) -关于微信的配置,目前使用第三方平台提供的功能,可以到 [这里](https://sct.ftqq.com/r/13223) 注册并登录 server 酱,取得 sendKey +关于微信的配置,使用我的项目[wxpush](https://github.com/frankiejun/wxpush), 不会配可以看[这个视频](https://youtu.be/sE1Kcol_XRs?si=G-UbUGlMhyysv-US) + ## HOSTS_JSON 的配置实例 diff --git a/keepalive.sh b/keepalive.sh index 757563de..129533e5 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -7,8 +7,8 @@ LOCKFILE="$installpath/serv00-play/.keepalive.lock" # 检查是否已经有一个实例在运行 if [ -e "$LOCKFILE" ]; then - echo "另一个实例正在运行,退出..." - exit 1 + echo "另一个实例正在运行,退出..." + exit 1 fi # 创建锁文件 @@ -16,8 +16,8 @@ touch "$LOCKFILE" # 定义清理函数 cleanup() { - rm -f "$LOCKFILE" - exit + rm -f "$LOCKFILE" + exit } # 捕获脚本退出信号并调用清理函数 @@ -30,199 +30,203 @@ TELEGRAM_USERID="$4" WXSENDKEY="$5" BUTTON_URL="$6" PASS="$7" -autoUpdateHyIP="$8" +WXPUSH_URL="$8" +WX_TOKEN="$9" +autoUpdateHyIP="${10}" #echo "TELEGRAM_TOKEN=$TELEGRAM_TOKEN, TELEGRAM_USERID=$TELEGRAM_USERID,WXSENDKEY=$WXSENDKEY,BUTTON_URL=$BUTTON_URL,pass=$PASS" checkHy2Alive() { - if ps aux | grep serv00sb | grep -v "grep" >/dev/null; then - return 0 - else - return 1 - fi + if ps aux | grep serv00sb | grep -v "grep" >/dev/null; then + return 0 + else + return 1 + fi } sendMsg() { - local msg=$1 - if [ -n "$msg" ]; then - cd $installpath/serv00-play - msg="Host:$host, user:$user, $msg" - if [ "$sendtype" == "1" ]; then - ./tgsend.sh "$msg" - elif [ "$sendtype" == "2" ]; then - ./wxsend.sh "$msg" - elif [ "$sendtype" == "3" ]; then - ./tgsend.sh "$msg" - ./wxsend.sh "$msg" - fi - fi + local msg=$1 + if [ -n "$msg" ]; then + cd $installpath/serv00-play + msg="Host:$host, user:$user, $msg" + if [ "$sendtype" == "1" ]; then + ./tgsend.sh "$msg" + elif [ "$sendtype" == "2" ]; then + ./wxsend.sh "$msg" + elif [ "$sendtype" == "3" ]; then + ./tgsend.sh "$msg" + ./wxsend.sh "$msg" + fi + fi } checkResetCron() { - echo "run checkResetCron" - local msg="" - cd ${installpath}/serv00-play/ - tm=$(jq -r ".chktime" config.json) - if [ "$tm" == "null" ]; then - return - fi - crontab -l | grep keepalive - if ! crontab -l | grep keepalive; then - msg="crontab记录被删过,并且已重建。" - addCron "$tm" - sendMsg $msg - fi + echo "run checkResetCron" + local msg="" + cd ${installpath}/serv00-play/ + tm=$(jq -r ".chktime" config.json) + if [ "$tm" == "null" ]; then + return + fi + crontab -l | grep keepalive + if ! crontab -l | grep keepalive; then + msg="crontab记录被删过,并且已重建。" + addCron "$tm" + sendMsg $msg + fi } #构建消息配置文件 makeMsgConfig() { - if [ -n "$TELEGRAM_TOKEN" ] || [ -n "$WXSENDKEY" ]; then - if [[ "$TELEGRAM_TOKEN" != "null" || "$WXSENDKEY" != "null" ]]; then - cat >msg.json <msg.json </dev/null 2>&1 & - else - local yamlcfg="config.yaml" - local datatls="" - if [[ "$tls" == "y" ]]; then - datatls="tls: true" - else - datatls="tls: false" - fi - nohup ./nezha-agent -c $yamlcfg 2>&1 & - fi + local workedir="${installpath}/serv00-play/nezha" + cd ${workedir} + local config="nezha.json" + if [[ ! -e "$config" ]]; then + red "未安装哪吒探针,请先进行安装!" + return 1 + fi + nezha_domain=$(jq -r ".nezha_domain" $config) + nezha_port=$(jq -r ".nezha_port" $config) + nezha_pwd=$(jq -r ".nezha_pwd" $config) + ver=$(jq -r ".version" $config) + tls=$(jq -r ".tls" $config) + + if checknezhaAgentAlive; then + stopNeZhaAgent + fi + + local args="--report-delay 4 --disable-auto-update --disable-force-update " + if [[ "$tls" == "y" ]]; then + args="${args} --tls " + fi + + if [[ "$ver" == "1" ]]; then + nohup ./nezha-agent ${args} -s "${nezha_domain}:${nezha_port}" -p "${nezha_pwd}" >/dev/null 2>&1 & + else + local yamlcfg="config.yaml" + local datatls="" + if [[ "$tls" == "y" ]]; then + datatls="tls: true" + else + datatls="tls: false" + fi + nohup ./nezha-agent -c $yamlcfg 2>&1 & + fi } startMtg() { - cd ${installpath}/serv00-play/dmtg + cd ${installpath}/serv00-play/dmtg - config="config.json" + config="config.json" - secret=$(jq -r ".secret" $config) - port=$(jq -r ".port" $config) - cmd="nohup ./mtg simple-run -n 1.1.1.1 -t 30s -a 1MB 0.0.0.0:$port $secret -c 8192 --prefer-ip=\"prefer-ipv6\" >/dev/null 2>&1 &" - eval "$cmd" - sleep 1 - if checkMtgAlive; then - echo "启动成功" - else - echo "启动失败,请检查进程" - fi + secret=$(jq -r ".secret" $config) + port=$(jq -r ".port" $config) + cmd="nohup ./mtg simple-run -n 1.1.1.1 -t 30s -a 1MB 0.0.0.0:$port $secret -c 8192 --prefer-ip=\"prefer-ipv6\" >/dev/null 2>&1 &" + eval "$cmd" + sleep 1 + if checkMtgAlive; then + echo "启动成功" + else + echo "启动失败,请检查进程" + fi } startNeZhaDashboard() { - cd ${installpath}/serv00-play/nezha-board - if checkProcAlive nezha-dashboard; then - stopNeZhaDashboard - fi - nohup ./nezha-dashboard -c config.yaml >borad.log 2>&1 & - if checkProcAlive nezha-dashboard; then - green "面板已启动!" - else - red "面板启动失败,请查看日志borad.log" - fi + cd ${installpath}/serv00-play/nezha-board + if checkProcAlive nezha-dashboard; then + stopNeZhaDashboard + fi + nohup ./nezha-dashboard -c config.yaml >borad.log 2>&1 & + if checkProcAlive nezha-dashboard; then + green "面板已启动!" + else + red "面板启动失败,请查看日志borad.log" + fi } startAlist() { - alistpath="${installpath}/serv00-play/alist" - - if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then - echo "正在启动alist..." - cd $alistpath - domain=$(jq -r ".domain" config.json) - - if checkProcAlive "alist"; then - echo "alist已启动,请勿重复启动!" - else - nohup ./alist server >/dev/null 2>&1 & - sleep 2 - if ! checkProcAlive "alist"; then - red "启动失败,请检查!" - return 1 - else - echo "启动成功!" - fi - fi - else - red "请先行安装再启动!" - return - fi + alistpath="${installpath}/serv00-play/alist" + + if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then + echo "正在启动alist..." + cd $alistpath + domain=$(jq -r ".domain" config.json) + + if checkProcAlive "alist"; then + echo "alist已启动,请勿重复启动!" + else + nohup ./alist server >/dev/null 2>&1 & + sleep 2 + if ! checkProcAlive "alist"; then + red "启动失败,请检查!" + return 1 + else + echo "启动成功!" + fi + fi + else + red "请先行安装再启动!" + return + fi } startSunPanel() { - cd ${installpath}/serv00-play/sunpanel - cmd="nohup ./sun-panel >/dev/null 2>&1 &" - eval "$cmd" + cd ${installpath}/serv00-play/sunpanel + cmd="nohup ./sun-panel >/dev/null 2>&1 &" + eval "$cmd" } startWebSSH() { - cd ${installpath}/serv00-play/webssh - ssh_port=$(jq -r ".port" config.json) - cmd="nohup ./wssh --port=$ssh_port --fbidhttp=False --wpintvl=30 --xheaders=False --encoding='utf-8' --delay=10 >/dev/null 2>&1 &" - eval "$cmd" + cd ${installpath}/serv00-play/webssh + ssh_port=$(jq -r ".port" config.json) + cmd="nohup ./wssh --port=$ssh_port --fbidhttp=False --wpintvl=30 --xheaders=False --encoding='utf-8' --delay=10 >/dev/null 2>&1 &" + eval "$cmd" } #main @@ -231,19 +235,19 @@ user=$(whoami) echo "正在调用keepalive.sh" if [[ "$autoUp" == "autoupdate" ]]; then - echo "run autoUpdate" - autoUpdate + echo "run autoUpdate" + autoUpdate fi echo "Host:$host, user:$user" cd ${installpath}/serv00-play/ if [[ -n "$autoUp" ]]; then - makeMsgConfig + makeMsgConfig fi if [ ! -f config.json ]; then - echo "未配置保活项目,请先行配置!" - cleanup + echo "未配置保活项目,请先行配置!" + cleanup fi monitor=($(jq -r ".item[]" config.json)) @@ -251,180 +255,200 @@ monitor=($(jq -r ".item[]" config.json)) tg_token=$(jq -r ".telegram_token // empty" config.json) if [[ -z "$tg_token" ]]; then - echo "从msg.json获取 telegram_token" - if [[ -e "msg.json" ]]; then - TELEGRAM_TOKEN=$(jq -r '.telegram_token // empty' msg.json) - fi + echo "从msg.json获取 telegram_token" + if [[ -e "msg.json" ]]; then + TELEGRAM_TOKEN=$(jq -r '.telegram_token // empty' msg.json) + fi else - TELEGRAM_TOKEN=$tg_token + TELEGRAM_TOKEN=$tg_token fi tg_userid=$(jq -r ".telegram_userid // empty" config.json) if [[ -z "$tg_userid" ]]; then - echo "从msg.json获取telegram_userid" - if [[ -e "msg.json" ]]; then - TELEGRAM_USERID=$(jq -r ".telegram_userid // empty" msg.json) - fi + echo "从msg.json获取telegram_userid" + if [[ -e "msg.json" ]]; then + TELEGRAM_USERID=$(jq -r ".telegram_userid // empty" msg.json) + fi else - TELEGRAM_USERID=$tg_userid + TELEGRAM_USERID=$tg_userid fi wx_sendkey=$(jq -r ".wxsendkey // empty" config.json) if [[ -z "$wx_sendkey" ]]; then - echo "从msg.json获取wxsendkey" - if [[ -e "msg.json" ]]; then - WXSENDKEY=$(jq -r ".wxsendkey // empty" msg.json) - fi + echo "从msg.json获取wxsendkey" + if [[ -e "msg.json" ]]; then + WXSENDKEY=$(jq -r ".wxsendkey // empty" msg.json) + fi +else + WXSENDKEY=$wx_sendkey +fi + +wx_push_url=$(jq -r ".wxpush_url // empty" config.json) +if [[ -z "$wx_push_url" ]]; then + echo "从msg.json获取wxpush_url" + if [[ -e "msg.json" ]]; then + WXPUSH_URL=$(jq -r ".wxpush_url // empty" msg.json) + fi +else + WXPUSH_URL=$wx_push_url +fi + +wx_token=$(jq -r ".wx_token // empty" config.json) +if [[ -z "$wx_token" ]]; then + echo "从msg.json获取wx_token" + if [[ -e "msg.json" ]]; then + WX_TOKEN=$(jq -r ".wx_token // empty" msg.json) + fi else - WXSENDKEY=$wx_sendkey + WX_TOKEN=$wx_token fi send_type=$(jq -r ".sendtype // empty" config.json) if [ -z "$send_type" ]; then - echo "从msg.json获取 sendtype" - if [[ -e "msg.json" ]]; then - sendtype=$(jq -r ".sendtype // empty" msg.json) - fi + echo "从msg.json获取 sendtype" + if [[ -e "msg.json" ]]; then + sendtype=$(jq -r ".sendtype // empty" msg.json) + fi else - sendtype=$send_type + sendtype=$send_type fi if [ -z "$BUTTON_URL" ]; then - echo "从msg.json获取 button_url" - if [[ -e "msg.json" ]]; then - BUTTON_URL=$(jq -r ".button_url // empty" msg.json) - fi + echo "从msg.json获取 button_url" + if [[ -e "msg.json" ]]; then + BUTTON_URL=$(jq -r ".button_url // empty" msg.json) + fi fi if [ -z "$PASS" ]; then - echo "从msg.json获取 password" - if [[ -e "msg.json" ]]; then - PASS=$(jq -r ".password // empty" msg.json) - fi + echo "从msg.json获取 password" + if [[ -e "msg.json" ]]; then + PASS=$(jq -r ".password // empty" msg.json) + fi fi -export TELEGRAM_TOKEN TELEGRAM_USERID WXSENDKEY sendtype BUTTON_URL PASS +export TELEGRAM_TOKEN TELEGRAM_USERID WXSENDKEY sendtype BUTTON_URL PASS WXPUSH_URL WX_TOKEN #echo "最终TELEGRAM_TOKEN=$TELEGRAM_TOKEN,TELEGRAM_USERID=$TELEGRAM_USERID" for obj in "${monitor[@]}"; do - msg="" - # echo "obj= $obj" - if [ "$obj" == "sun-panel" ]; then - if ! checkProcAlive "sun-panel"; then - startSunPanel - sleep 2 - if ! checkProcAlive "sun-panel"; then - msg="sun-panel 重启失败." - else - msg="sun-panel 重启成功." - fi - fi - elif [ "$obj" == "webssh" ]; then - if ! checkProcAlive "wssh"; then - startWebSSH - sleep 2 - if ! checkProcAlive "wssh"; then - msg="webssh 重启失败." - else - msg="webssh 重启成功." - fi - fi - elif [ "$obj" == "vmess" ]; then - if ! checkvmessAlive; then - cd ${installpath}/serv00-play/singbox - chmod +x ./start.sh && ./start.sh 1 keep - sleep 1 - if ! checkvmessAlive; then - msg="vmess 重启失败." - else - msg="vmess 重启成功." - fi - fi - #hy2和vmess+ws都只需要启动serv00sb,所以可以这么写 - elif [[ "$obj" == "hy2/vmess+ws" || "$obj" == "hy2" ]]; then - if ! checkHy2Alive; then - #echo "重启serv00sb中..." - cd ${installpath}/serv00-play/singbox - chmod +x ./start.sh && ./start.sh 2 keep - sleep 1 - if ! checkHy2Alive; then - msg="hy2 重启失败." - else - msg="hy2 重启成功." - fi - fi - elif [ "$obj" == "nezha-agent" ]; then - if ! checknezhaAgentAlive; then - cd ${installpath}/serv00-play/nezha - startNeZhaAgent - sleep 1 - if ! checknezhaAgentAlive; then - msg="nezha-agent 重启失败." - else - msg="nezha-agent 重启成功." - fi - fi - elif [ "$obj" == "nezha-dashboard" ]; then - if ! checkProcAlive "nezha-dashboard"; then - cd ${installpath}/serv00-play/nezha-board - startNeZhaDashboard - sleep 1 - if ! checkProcAlive "nezha-dashboard"; then - msg="nezha-dashboard 重启失败." - else - msg="nezha-dashboard 重启成功." - fi - fi - elif [ "$obj" == "mtg" ]; then - if ! checkMtgAlive; then - cd ${installpath}/serv00-play/dmtg - startMtg - sleep 1 - if ! checkMtgAlive; then - msg="mtproto 重启失败." - else - msg="mtproto 重启成功." - fi - fi - elif [ "$obj" == "alist" ]; then - if ! checkProcAlive "alist"; then - startAlist - sleep 1 - if ! checkProcAlive "alist"; then - msg="alist 重启失败." - else - msg="alist 重启成功." - fi - fi - elif [ "$obj" == "wssh" ]; then - if ! checkProcAlive wssh; then - startAlist - sleep 1 - if ! checkAlistAlive; then - msg="wssh 重启失败." - else - msg="wssh 重启成功." - fi - fi - else - continue - fi - - sendMsg "$msg" + msg="" + # echo "obj= $obj" + if [ "$obj" == "sun-panel" ]; then + if ! checkProcAlive "sun-panel"; then + startSunPanel + sleep 2 + if ! checkProcAlive "sun-panel"; then + msg="sun-panel 重启失败." + else + msg="sun-panel 重启成功." + fi + fi + elif [ "$obj" == "webssh" ]; then + if ! checkProcAlive "wssh"; then + startWebSSH + sleep 2 + if ! checkProcAlive "wssh"; then + msg="webssh 重启失败." + else + msg="webssh 重启成功." + fi + fi + elif [ "$obj" == "vmess" ]; then + if ! checkvmessAlive; then + cd ${installpath}/serv00-play/singbox + chmod +x ./start.sh && ./start.sh 1 keep + sleep 1 + if ! checkvmessAlive; then + msg="vmess 重启失败." + else + msg="vmess 重启成功." + fi + fi + #hy2和vmess+ws都只需要启动serv00sb,所以可以这么写 + elif [[ "$obj" == "hy2/vmess+ws" || "$obj" == "hy2" ]]; then + if ! checkHy2Alive; then + #echo "重启serv00sb中..." + cd ${installpath}/serv00-play/singbox + chmod +x ./start.sh && ./start.sh 2 keep + sleep 1 + if ! checkHy2Alive; then + msg="hy2 重启失败." + else + msg="hy2 重启成功." + fi + fi + elif [ "$obj" == "nezha-agent" ]; then + if ! checknezhaAgentAlive; then + cd ${installpath}/serv00-play/nezha + startNeZhaAgent + sleep 1 + if ! checknezhaAgentAlive; then + msg="nezha-agent 重启失败." + else + msg="nezha-agent 重启成功." + fi + fi + elif [ "$obj" == "nezha-dashboard" ]; then + if ! checkProcAlive "nezha-dashboard"; then + cd ${installpath}/serv00-play/nezha-board + startNeZhaDashboard + sleep 1 + if ! checkProcAlive "nezha-dashboard"; then + msg="nezha-dashboard 重启失败." + else + msg="nezha-dashboard 重启成功." + fi + fi + elif [ "$obj" == "mtg" ]; then + if ! checkMtgAlive; then + cd ${installpath}/serv00-play/dmtg + startMtg + sleep 1 + if ! checkMtgAlive; then + msg="mtproto 重启失败." + else + msg="mtproto 重启成功." + fi + fi + elif [ "$obj" == "alist" ]; then + if ! checkProcAlive "alist"; then + startAlist + sleep 1 + if ! checkProcAlive "alist"; then + msg="alist 重启失败." + else + msg="alist 重启成功." + fi + fi + elif [ "$obj" == "wssh" ]; then + if ! checkProcAlive wssh; then + startAlist + sleep 1 + if ! checkAlistAlive; then + msg="wssh 重启失败." + else + msg="wssh 重启成功." + fi + fi + else + continue + fi + + sendMsg "$msg" done if [ ${#monitor[@]} -gt 0 ]; then - checkResetCron + checkResetCron fi if [[ "$autoUpdateHyIP" == "Y" ]]; then - echo "正在自动更新HY2IP..." - cd ${installpath}/serv00-play/singbox - chmod +x ./autoUpdateHyIP.sh && ./autoUpdateHyIP.sh + echo "正在自动更新HY2IP..." + cd ${installpath}/serv00-play/singbox + chmod +x ./autoUpdateHyIP.sh && ./autoUpdateHyIP.sh fi devil info account &>/dev/null diff --git a/revive.sh b/revive.sh index c9300bbf..62820496 100644 --- a/revive.sh +++ b/revive.sh @@ -5,6 +5,8 @@ SENDTYPE=${SENDTYPE:-null} TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} TELEGRAM_USERID=${TELEGRAM_USERID:-null} WXSENDKEY=${WXSENDKEY:-null} +WXPUSH_URL=${WXPUSH_URL:-null} +WX_TOKEN=${WX_TOKEN:-null} BUTTON_URL=${BUTTON_URL:-null} LOGININFO=${LOGININFO:-N} export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL @@ -13,34 +15,34 @@ export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) summary="" for info in "${hosts_info[@]}"; do - user=$(echo $info | jq -r ".username") - host=$(echo $info | jq -r ".host") - port=$(echo $info | jq -r ".port") - pass=$(echo $info | jq -r ".password") + user=$(echo $info | jq -r ".username") + host=$(echo $info | jq -r ".host") + port=$(echo $info | jq -r ".port") + pass=$(echo $info | jq -r ".password") - if [[ "$AUTOUPDATE" == "Y" ]]; then - script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" - else - script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\"" - fi - output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") + if [[ "$AUTOUPDATE" == "Y" ]]; then + script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" + else + script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" + fi + output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") - echo "output:$output" + echo "output:$output" - if echo "$output" | grep -q "keepalive.sh"; then - echo "登录成功" - msg="🟢主机 ${host}, 用户 ${user}, 登录成功!\n" - else - echo "登录失败" - msg="🔴主机 ${host}, 用户 ${user}, 登录失败!\n" - chmod +x ./tgsend.sh - export PASS=$pass - ./tgsend.sh "Host:$host, user:$user, 登录失败,请检查!" - fi - summary=$summary$(echo -n $msg) + if echo "$output" | grep -q "keepalive.sh"; then + echo "登录成功" + msg="🟢主机 ${host}, 用户 ${user}, 登录成功!\n" + else + echo "登录失败" + msg="🔴主机 ${host}, 用户 ${user}, 登录失败!\n" + chmod +x ./tgsend.sh + export PASS=$pass + ./tgsend.sh "Host:$host, user:$user, 登录失败,请检查!" + fi + summary=$summary$(echo -n $msg) done if [[ "$LOGININFO" == "Y" ]]; then - chmod +x ./tgsend.sh - ./tgsend.sh "$summary" + chmod +x ./tgsend.sh + ./tgsend.sh "$summary" fi diff --git a/wxsend.sh b/wxsend.sh index 86424c9f..a0989da2 100644 --- a/wxsend.sh +++ b/wxsend.sh @@ -3,22 +3,48 @@ text=$1 sendKey=${WXSENDKEY} +wx_push_url=${WXPUSH_URL} +wx_token=${WX_TOKEN} title="msg_from_serv00-play" URL="https://sctapi.ftqq.com/$sendKey.send?" -if [[ -z ${sendKey} ]]; then - echo "未配置微信推送的sendKey,通过 https://sct.ftqq.com/r/13223 注册并登录server酱,取得sendKey" +if [[ -z "$1" ]]; then + echo "错误:未提供要发送的消息内容。" + echo "用法: $0 \"你的消息\"" + exit 1 +fi + +if [[ -z "${wx_push_url}" ]]; then + if [[ -z ${sendKey} ]]; then + echo "未配置微信推送的sendKey,通过 https://sct.ftqq.com/r/13223 注册并登录server酱,取得sendKey" + else + res=$(timeout 20s curl -s -X POST $URL -d title=${title} -d desp="${text}") + if [ $? == 124 ]; then + echo "发送消息超时" + exit 1 + fi + + err=$(echo "$res" | jq -r ".data.error") + if [ "$err" == "SUCCESS" ]; then + echo "微信推送成功" + else + echo "微信推送失败, error:$err" + fi + fi else - res=$(timeout 20s curl -s -X POST $URL -d title=${title} -d desp="${text}") - if [ $? == 124 ]; then - echo "发送消息超时" - exit 1 - fi + if [[ -z ${wx_token} ]]; then + echo "未配置wxpush微信推送的wx_token,请参考https://github.com/frankiejun/wxpush 获取wx_token" + else + res=$(timeout 20s curl -s -X POST "${wx_push_url}" -H "Authorization: $wx_token" -H "Content-Type: application/json" -d "{\"token\":\"${wx_token}\",\"title\":\"${title}\",\"content\":\"${text}\",\"contentType\":1,\"uids\":[],\"topicIds\":[]}") + if [ $? == 124 ]; then + echo "发送消息超时" + exit 1 + fi - err=$(echo "$res" | jq -r ".data.error") - if [ "$err" == "SUCCESS" ]; then - echo "微信推送成功" - else - echo "微信推送失败, error:$err" - fi + if echo "$res" | grep -q "Successfully"; then + echo "微信推送成功" + else + echo "微信推送失败, res:$res" + fi + fi fi From 065c5e29f735ea2c5b0b5560e5287eb1f73465a0 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 29 Nov 2025 20:02:14 +0800 Subject: [PATCH 161/210] wxpush --- wxsend.sh | 100 +++++++++++++++++++++++++++--------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/wxsend.sh b/wxsend.sh index a0989da2..5211f57c 100644 --- a/wxsend.sh +++ b/wxsend.sh @@ -1,50 +1,50 @@ -#!/bin/bash - -text=$1 - -sendKey=${WXSENDKEY} -wx_push_url=${WXPUSH_URL} -wx_token=${WX_TOKEN} -title="msg_from_serv00-play" -URL="https://sctapi.ftqq.com/$sendKey.send?" - -if [[ -z "$1" ]]; then - echo "错误:未提供要发送的消息内容。" - echo "用法: $0 \"你的消息\"" - exit 1 -fi - -if [[ -z "${wx_push_url}" ]]; then - if [[ -z ${sendKey} ]]; then - echo "未配置微信推送的sendKey,通过 https://sct.ftqq.com/r/13223 注册并登录server酱,取得sendKey" - else - res=$(timeout 20s curl -s -X POST $URL -d title=${title} -d desp="${text}") - if [ $? == 124 ]; then - echo "发送消息超时" - exit 1 - fi - - err=$(echo "$res" | jq -r ".data.error") - if [ "$err" == "SUCCESS" ]; then - echo "微信推送成功" - else - echo "微信推送失败, error:$err" - fi - fi -else - if [[ -z ${wx_token} ]]; then - echo "未配置wxpush微信推送的wx_token,请参考https://github.com/frankiejun/wxpush 获取wx_token" - else - res=$(timeout 20s curl -s -X POST "${wx_push_url}" -H "Authorization: $wx_token" -H "Content-Type: application/json" -d "{\"token\":\"${wx_token}\",\"title\":\"${title}\",\"content\":\"${text}\",\"contentType\":1,\"uids\":[],\"topicIds\":[]}") - if [ $? == 124 ]; then - echo "发送消息超时" - exit 1 - fi - - if echo "$res" | grep -q "Successfully"; then - echo "微信推送成功" - else - echo "微信推送失败, res:$res" - fi - fi -fi +#!/bin/bash + +text=$1 + +sendKey=${WXSENDKEY} +wx_push_url=${WXPUSH_URL} +wx_token=${WX_TOKEN} +title="msg_from_serv00-play" +URL="https://sctapi.ftqq.com/$sendKey.send?" + +if [[ -z "$1" ]]; then + echo "错误:未提供要发送的消息内容。" + echo "用法: $0 \"你的消息\"" + exit 1 +fi + +if [[ -z "${wx_push_url}" ]]; then + if [[ -z ${sendKey} ]]; then + echo "未配置微信推送的sendKey,通过 https://sct.ftqq.com/r/13223 注册并登录server酱,取得sendKey" + else + res=$(timeout 20s curl -s -X POST $URL -d title=${title} -d desp="${text}") + if [ $? == 124 ]; then + echo "发送消息超时" + exit 1 + fi + + err=$(echo "$res" | jq -r ".data.error") + if [ "$err" == "SUCCESS" ]; then + echo "微信推送成功" + else + echo "微信推送失败, error:$err" + fi + fi +else + if [[ -z ${wx_token} ]]; then + echo "未配置wxpush微信推送的wx_token,请参考https://github.com/frankiejun/wxpush 获取wx_token" + else + res=$(timeout 20s curl -s -X POST "${wx_push_url}" -H "Authorization: $wx_token" -H "Content-Type: application/json" -d "{\"token\":\"${wx_token}\",\"title\":\"${title}\",\"content\":\"${text}\",\"contentType\":1,\"uids\":[],\"topicIds\":[]}") + if [ $? == 124 ]; then + echo "发送消息超时" + exit 1 + fi + + if echo "$res" | grep -q "Successfully"; then + echo "微信推送成功" + else + echo "微信推送失败, res:$res" + fi + fi +fi From 4ccad35f12451c302f2ccc08aff0bb79703c9ecd Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sun, 30 Nov 2025 18:51:16 +0800 Subject: [PATCH 162/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0domain-support?= =?UTF-8?q?=E7=9A=84=E7=BD=91=E7=AB=99=E6=A8=A1=E6=9D=BF--=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E7=AE=80=E5=8E=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + domains-support/websites/resume.html | 146 + start.sh | 6746 +++++++++++++------------- 3 files changed, 3528 insertions(+), 3365 deletions(-) create mode 100644 domains-support/websites/resume.html diff --git a/.gitignore b/.gitignore index fe427258..41d77cf5 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ vmess/list vmess/cloudflared vless/node_modules tools/ +.vscode/ diff --git a/domains-support/websites/resume.html b/domains-support/websites/resume.html new file mode 100644 index 00000000..da5a497c --- /dev/null +++ b/domains-support/websites/resume.html @@ -0,0 +1,146 @@ + + + + + + Li Ming's Resume + + + + +
+
+

Li Ming's Resume

+

Tsinghua University, Department of Computer Science, 3 Years Since Graduation

+
+ +
+
Personal Information
+
+

Name: Li Ming

+

Date of Birth: May 1, 1995

+

Email: liming@gmail.com

+

Phone: +86 138 6666 8888

+

Address: Haidian District, Beijing, China

+
+
+ +
+
Education
+
+
+

Tsinghua University, Department of Computer Science - Bachelor's Degree

+

Graduation Date: June 2022

+

Major Courses: Data Structures and Algorithms, Computer Networks, Operating Systems, Artificial Intelligence, Machine Learning

+
+
+
+ +
+
Work Experience
+
+
+

Tencent - Software Engineer

+

Employment Period: July 2022 - December 2024

+

Job Description: Involved in the architecture design and development of Tencent Cloud Platform, optimized system performance, and maintained backend services for company products. Led a cross-team project that successfully improved data processing efficiency.

+
+
+

ByteDance - Backend Engineer

+

Employment Period: January 2024 - Present

+

Job Description: Responsible for backend service development and optimization for a short-video platform, wrote efficient API interfaces using Python and Go, and performed system tuning to ensure service stability under high concurrency environments.

+
+
+
+ +
+
Skills
+
+
    +
  • Proficient in Python, Java, Go, and other programming languages
  • +
  • Deep understanding of data structures and algorithms, capable of solving problems efficiently
  • +
  • Familiar with Linux operating system, capable of system performance optimization and troubleshooting
  • +
  • Experienced in developing and maintaining large-scale distributed systems
  • +
  • Familiar with common database technologies such as MySQL, Redis, and MongoDB
  • +
  • Strong teamwork and communication skills
  • +
+
+
+ +
+
Project Experience
+
+
+

Online Education Platform

+

Project Description: Designed and developed an online education platform that supports live video streaming, courseware sharing, and interaction. Responsible for backend development, optimized video streaming and real-time data interaction, enhancing user experience.

+
+
+

Social Media Analytics System

+

Project Description: Participated in the development of a social media data analytics system that can capture and analyze data from social platforms in real time, helping businesses monitor brand sentiment. Optimized data storage and retrieval performance.

+
+
+
+ +
+
Language Skills
+
+

Chinese: Native

+

English: Fluent (TOEFL 100)

+
+
+ +
+ + + + diff --git a/start.sh b/start.sh index f77ff49e..b66a35ea 100755 --- a/start.sh +++ b/start.sh @@ -9,295 +9,295 @@ CYAN='\033[0;96m' WHITE='\033[0;37m' RESET='\033[0m' yellow() { - echo -e "${YELLOW}$1${RESET}" + echo -e "${YELLOW}$1${RESET}" } green() { - echo -e "${GREEN}$1${RESET}" + echo -e "${GREEN}$1${RESET}" } red() { - echo -e "${RED}$1${RESET}" + echo -e "${RED}$1${RESET}" } installpath="$HOME" USER="$(whoami)" if [[ -e "$installpath/serv00-play" ]]; then - source ${installpath}/serv00-play/utils.sh + source ${installpath}/serv00-play/utils.sh fi PS3="请选择(输入0退出): " install() { - local input=$1 - cd ${installpath} - if [ -d "serv00-play" ]; then - cd "serv00-play" - git stash - if git pull origin main; then - git fetch --tags - echo "更新完毕" - #重新给各个脚本赋权限 - chmod +x ./start.sh - chmod +x ./keepalive.sh - chmod +x ./tgsend.sh - chmod +x ./wxsend.sh - chmod +x ${installpath}/serv00-play/singbox/start.sh - chmod +x ${installpath}/serv00-play/singbox/killsing-box.sh - chmod +x ${installpath}/serv00-play/singbox/autoUpdateHyIP.sh - chmod +x ${installpath}/serv00-play/ssl/cronSSL.sh - red "请重新启动脚本!" - exit 0 - fi - fi - - cd ${installpath} - echo "正在安装..." - if ! git clone https://github.com/frankiejun/serv00-play.git; then - echo -e "${RED}安装失败!${RESET}" - exit 1 - fi - devil binexec on - touch .profile - cat .profile | perl ./serv00-play/mkprofile.pl >tmp_profile - mv -f tmp_profile .profile - if [[ ! -e "${installpath}/serv00-play" ]]; then - red "安装不成功!" - return - fi - - cd ${installpath}/serv00-play - chmod +x ./start.sh - chmod +x ./keepalive.sh - chmod +x ./tgsend.sh - chmod +x ./wxsend.sh - chmod +x ${installpath}/serv00-play/singbox/start.sh - chmod +x ${installpath}/serv00-play/singbox/killsing-box.sh - chmod +x ${installpath}/serv00-play/singbox/autoUpdateHyIP.sh - chmod +x ${installpath}/serv00-play/ssl/cronSSL.sh - if [ -z "$input" ]; then - read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input - input=${input:-y} - fi - echo -e "${YELLOW}安装成功${RESET}" - - if [ "$input" = "y" ]; then - kill -9 $PPID - fi + local input=$1 + cd ${installpath} + if [ -d "serv00-play" ]; then + cd "serv00-play" + git stash + if git pull origin main; then + git fetch --tags + echo "更新完毕" + #重新给各个脚本赋权限 + chmod +x ./start.sh + chmod +x ./keepalive.sh + chmod +x ./tgsend.sh + chmod +x ./wxsend.sh + chmod +x ${installpath}/serv00-play/singbox/start.sh + chmod +x ${installpath}/serv00-play/singbox/killsing-box.sh + chmod +x ${installpath}/serv00-play/singbox/autoUpdateHyIP.sh + chmod +x ${installpath}/serv00-play/ssl/cronSSL.sh + red "请重新启动脚本!" + exit 0 + fi + fi + + cd ${installpath} + echo "正在安装..." + if ! git clone https://github.com/frankiejun/serv00-play.git; then + echo -e "${RED}安装失败!${RESET}" + exit 1 + fi + devil binexec on + touch .profile + cat .profile | perl ./serv00-play/mkprofile.pl >tmp_profile + mv -f tmp_profile .profile + if [[ ! -e "${installpath}/serv00-play" ]]; then + red "安装不成功!" + return + fi + + cd ${installpath}/serv00-play + chmod +x ./start.sh + chmod +x ./keepalive.sh + chmod +x ./tgsend.sh + chmod +x ./wxsend.sh + chmod +x ${installpath}/serv00-play/singbox/start.sh + chmod +x ${installpath}/serv00-play/singbox/killsing-box.sh + chmod +x ${installpath}/serv00-play/singbox/autoUpdateHyIP.sh + chmod +x ${installpath}/serv00-play/ssl/cronSSL.sh + if [ -z "$input" ]; then + read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input + input=${input:-y} + fi + echo -e "${YELLOW}安装成功${RESET}" + + if [ "$input" = "y" ]; then + kill -9 $PPID + fi } showSingBoxInfo() { - cd ${installpath}/serv00-play/singbox - - if [ ! -f singbox.json ]; then - red "配置文件不存在,请先行配置!" - return - fi - if [ ! -e list ]; then - red "请先运行sing-box" - fi - config="singbox.json" - type=$(jq -r ".TYPE" $config) - chmod +x ./start.sh && ./start.sh $type list + cd ${installpath}/serv00-play/singbox + + if [ ! -f singbox.json ]; then + red "配置文件不存在,请先行配置!" + return + fi + if [ ! -e list ]; then + red "请先运行sing-box" + fi + config="singbox.json" + type=$(jq -r ".TYPE" $config) + chmod +x ./start.sh && ./start.sh $type list } chooseSingbox() { - echo "保活sing-box中哪个项目(单选): " - echo " 1.hy2/vmess+ws/socks5 " - echo " 2.argo+vmess " - echo " 3.all " - read -p "请选择:" input - - if [ "$input" = "1" ]; then - item+=("hy2/vmess+ws") - elif [ "$input" = "2" ]; then - item+=("vmess") - elif [ "$input" = "3" ]; then - item+=("hy2/vmess+ws") - item+=("vmess") - else - red "无效选择!" - return 1 - fi + echo "保活sing-box中哪个项目(单选): " + echo " 1.hy2/vmess+ws/socks5 " + echo " 2.argo+vmess " + echo " 3.all " + read -p "请选择:" input + + if [ "$input" = "1" ]; then + item+=("hy2/vmess+ws") + elif [ "$input" = "2" ]; then + item+=("vmess") + elif [ "$input" = "3" ]; then + item+=("hy2/vmess+ws") + item+=("vmess") + else + red "无效选择!" + return 1 + fi } setConfig() { - cd ${installpath}/serv00-play/ - - if [ -f config.json ]; then - echo "目前已有配置:" - config_content=$(cat config.json) - echo $config_content - read -p "是否修改? [y/n] [y]:" input - input=${input:-y} - if [ "$input" != "y" ]; then - return - fi - fi - createConfigFile + cd ${installpath}/serv00-play/ + + if [ -f config.json ]; then + echo "目前已有配置:" + config_content=$(cat config.json) + echo $config_content + read -p "是否修改? [y/n] [y]:" input + input=${input:-y} + if [ "$input" != "y" ]; then + return + fi + fi + createConfigFile } createConfigFile() { - echo "选择你要保活的项目(可多选,用空格分隔):" - echo "1. sun-panel " - echo "2. sing-box(包含hy2,vmess,socks5) " - echo "3. 哪吒探针 " - echo "4. mtproto代理" - echo "5. alist" - echo "6. webssh" - echo "7. 哪吒面板" - echo "88. 暂停所有保活功能" - echo "99. 复通所有保活功能(之前有配置的情况下)" - echo "0. 返回主菜单" - item=() - - read -p "请选择: " choices - choices=($choices) - - if [[ "${choices[@]}" =~ "88" && ${#choices[@]} -gt 1 ]]; then - red "选择出现了矛盾项,请重新选择!" - return 1 - fi - - #过滤重复 - choices=($(echo "${choices[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')) - - # 根据选择来询问对应的配置 - for choice in "${choices[@]}"; do - case "$choice" in - 0) - showMenu - break - ;; - 1) - item+=("sun-panel") - ;; - 2) - if ! chooseSingbox; then - return - fi - ;; - 3) - item+=("nezha-agent") - ;; - 4) - item+=("mtg") - ;; - 5) - item+=("alist") - ;; - 6) - item+=("webssh") - ;; - 7) - item+=("nezha-dashboard") - ;; - 88) - #delCron - backupConfig "config.json" - green "设置完毕!" - return 0 - ;; - 99) - if [[ ! -e config.bak ]]; then - red "之前未有配置,未能复通!" - return 1 - fi - restoreConfig "config.bak" - tm=$(jq -r ".chktime" config.json) - addCron $tm - green "设置完毕!" - return 0 - ;; - *) - echo "无效选择" - return 1 - ;; - esac - done - - json_content="{\n" - json_content+=" \"item\": [\n" - - for item in "${item[@]}"; do - json_content+=" \"$item\"," - done - - # 删除最后一个逗号并换行 - json_content="${json_content%,}\n" - json_content+=" ],\n" - - read -p "是否需要配置消息推送? [y/n] [n]:" input - input=${input:-n} - - if [ "${input}" == "y" ]; then - json_content+="\n" - - echo "选择要推送的app:" - echo "1) Telegram " - echo "2) 微信 " - echo "3) 以上皆是" - - read -p "请选择:" sendtype - - if [ "$sendtype" == "1" ]; then - writeTG - elif [ "$sendtype" == "2" ]; then - writeWX - elif [ "$sendtype" == "3" ]; then - writeTG - writeWX - else - echo "无效选择" - return - fi - else - sendtype=${sendtype:-"null"} - fi - - read -p "是否使用cron保活? [y/n] [n]:" setcron - setcron=${setcron:-n} - - if [[ "$setcron" == "y" ]]; then - read -p "配置保活检查的时间间隔(单位分钟[1~59],默认5分钟):" tm - tm=${tm:-"5"} - json_content+=" \"chktime\": \"$tm\"," - fi - json_content+="\n \"sendtype\": $sendtype \n" - json_content+="}\n" - - # 使用 printf 生成文件 - printf "$json_content" >./config.json - if [[ "$setcron" == "y" ]]; then - addCron $tm - fi - - chmod +x ${installpath}/serv00-play/keepalive.sh - echo -e "${YELLOW} 设置完成! ${RESET} " + echo "选择你要保活的项目(可多选,用空格分隔):" + echo "1. sun-panel " + echo "2. sing-box(包含hy2,vmess,socks5) " + echo "3. 哪吒探针 " + echo "4. mtproto代理" + echo "5. alist" + echo "6. webssh" + echo "7. 哪吒面板" + echo "88. 暂停所有保活功能" + echo "99. 复通所有保活功能(之前有配置的情况下)" + echo "0. 返回主菜单" + item=() + + read -p "请选择: " choices + choices=($choices) + + if [[ "${choices[@]}" =~ "88" && ${#choices[@]} -gt 1 ]]; then + red "选择出现了矛盾项,请重新选择!" + return 1 + fi + + #过滤重复 + choices=($(echo "${choices[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ')) + + # 根据选择来询问对应的配置 + for choice in "${choices[@]}"; do + case "$choice" in + 0) + showMenu + break + ;; + 1) + item+=("sun-panel") + ;; + 2) + if ! chooseSingbox; then + return + fi + ;; + 3) + item+=("nezha-agent") + ;; + 4) + item+=("mtg") + ;; + 5) + item+=("alist") + ;; + 6) + item+=("webssh") + ;; + 7) + item+=("nezha-dashboard") + ;; + 88) + #delCron + backupConfig "config.json" + green "设置完毕!" + return 0 + ;; + 99) + if [[ ! -e config.bak ]]; then + red "之前未有配置,未能复通!" + return 1 + fi + restoreConfig "config.bak" + tm=$(jq -r ".chktime" config.json) + addCron $tm + green "设置完毕!" + return 0 + ;; + *) + echo "无效选择" + return 1 + ;; + esac + done + + json_content="{\n" + json_content+=" \"item\": [\n" + + for item in "${item[@]}"; do + json_content+=" \"$item\"," + done + + # 删除最后一个逗号并换行 + json_content="${json_content%,}\n" + json_content+=" ],\n" + + read -p "是否需要配置消息推送? [y/n] [n]:" input + input=${input:-n} + + if [ "${input}" == "y" ]; then + json_content+="\n" + + echo "选择要推送的app:" + echo "1) Telegram " + echo "2) 微信 " + echo "3) 以上皆是" + + read -p "请选择:" sendtype + + if [ "$sendtype" == "1" ]; then + writeTG + elif [ "$sendtype" == "2" ]; then + writeWX + elif [ "$sendtype" == "3" ]; then + writeTG + writeWX + else + echo "无效选择" + return + fi + else + sendtype=${sendtype:-"null"} + fi + + read -p "是否使用cron保活? [y/n] [n]:" setcron + setcron=${setcron:-n} + + if [[ "$setcron" == "y" ]]; then + read -p "配置保活检查的时间间隔(单位分钟[1~59],默认5分钟):" tm + tm=${tm:-"5"} + json_content+=" \"chktime\": \"$tm\"," + fi + json_content+="\n \"sendtype\": $sendtype \n" + json_content+="}\n" + + # 使用 printf 生成文件 + printf "$json_content" >./config.json + if [[ "$setcron" == "y" ]]; then + addCron $tm + fi + + chmod +x ${installpath}/serv00-play/keepalive.sh + echo -e "${YELLOW} 设置完成! ${RESET} " } backupConfig() { - local filename=$1 - if [[ -e "$filename" ]]; then - if [[ "$filename" =~ ".json" ]]; then - local basename=${filename%.json} - mv $filename $basename.bak - fi - fi + local filename=$1 + if [[ -e "$filename" ]]; then + if [[ "$filename" =~ ".json" ]]; then + local basename=${filename%.json} + mv $filename $basename.bak + fi + fi } restoreConfig() { - local filename=$1 - if [[ -e "$filename" ]]; then - if [[ "$filename" =~ ".bak" ]]; then - local basename=${filename%.bak} - mv $filename $basename.json - fi - fi + local filename=$1 + if [[ -e "$filename" ]]; then + if [[ "$filename" =~ ".bak" ]]; then + local basename=${filename%.bak} + mv $filename $basename.json + fi + fi } make_vmess_config() { - cat >tempvmess.json <tempvmess.json <temp_outbound_socks5.json <temp_outbound_socks5.json <temphy2.json <temphy2.json <tmpsocks5.json <tmpsocks5.json <config.json <config.json <~/.cloudflared/config.yml <~/.cloudflared/config.yml <singbox.json <singbox.json </dev/null 2>&1 - rsync -a $srcpath/ ~/ 2>/dev/null - yellow "快照恢复完成!" - return - elif [ "$input" = "2" ]; then - declare -A foundArr - read -p "输入你要恢复到文件或目录:" infile - - for folder in "${!snapshot_paths[@]}"; do - path="${snapshot_paths[$folder]}" - results=$(find "${path}" -name "$infile" 2>/dev/null) - # echo "111results:|$results|" - if [[ -n "$results" ]]; then - #echo "put |$results| to folder:$folder" - foundArr["$folder"]="$results" - fi - done - local i=1 - sortedFoundArr=($(echo "${!foundArr[@]}" | tr ' ' '\n' | sort -r)) - declare -A indexPathArr - for folder in "${sortedFoundArr[@]}"; do - echo "$i. $folder:" - results="${foundArr[${folder}]}" - IFS=$'\n' read -r -d '' -a paths <<<"$results" - local j=1 - for path in "${paths[@]}"; do - indexPathArr["$i"."$j"]="$path" - echo " $j. $path" - - j=$((j + 1)) - done - i=$((i + 1)) - done - - while [ true ]; do - read -p "输入要恢复的文件序号,格式:日期序号.文件序号, 多个以逗号分隔.(如输入 1.2,3.2)[按enter返回]:" input - regex='^([0-9]+\.[0-9]+)(,[0-9]+\.[0-9]+)*$' - - if [ -z "$input" ]; then - return - fi - - if [[ "$input" =~ $regex ]]; then - declare -a pairNos - declare -a fileNos - IFS=',' read -r -a pairNos <<<"$input" - - echo "请选择文件恢复的目标路径:" - echo "1.原路返回 " - echo "2.${installpath}/restore " - read -p "请选择:" targetDir - - if [[ "$targetDir" != "1" ]] && [[ "$targetDir" != "2" ]]; then - red "无效输入!" - return - fi - - for pairNo in "${pairNos[@]}"; do - srcpath="${indexPathArr[$pairNo]}" - - if [ "$targetDir" = "1" ]; then - local user=$(whoami) - targetPath=${srcpath#*${user}} - if [ -d $srcpath ]; then - targetPath=${targetPath%/*} - fi - echo "cp -r $srcpath $HOME/$targetPath" - cp -r ${srcpath} $HOME/${targetPath} - - elif [ "$targetDir" = "2" ]; then - targetPath="${installpath}/restore" - if [ ! -e "$targetPath" ]; then - mkdir -p "$targetPath" - fi - cp -r $srcpath $targetPath/ - fi - done - green "完成文件恢复" - - else - red "输入格式不对,请重新输入!" - fi - done - fi + cd ${installpath}/backups/local + # 定义一个关联数组 + declare -A snapshot_paths + + # 遍历每个符号链接,并将文件夹名称及真实路径保存到数组中 + while read -r line; do + # 提取文件夹名称和对应的真实路径 + folder=$(echo "$line" | awk '{print $9}') + real_path=$(echo "$line" | awk '{print $11}') + + # 将文件夹名称和真实路径存入数组 + snapshot_paths["$folder"]="$real_path" + done < <(ls -trl | grep -F "lrwxr") + + size=${#snapshot_paths[@]} + sorted_keys=($(echo "${!snapshot_paths[@]}" | tr ' ' '\n' | sort -r)) + if [ $size -eq 0 ]; then + echo "未有备份快照!" + return + fi + echo "选择你需要恢复的内容:" + echo "1. 完整快照恢复 " + echo "2. 恢复某个文件或目录" + read -p "请选择:" input + + if [ "$input" = "1" ]; then + local i=1 + declare -a folders + for folder in "${sorted_keys[@]}"; do + echo "${i}. ${folder} " + i=$((i + 1)) + done + retries=3 + while [ $retries -gt 0 ]; do + read -p "请选择恢复到哪一天(序号)?" input + # 检查输入是否有效 + if [[ $input =~ ^[0-9]+$ ]] && [ "$input" -gt 0 ] && [ "$input" -le $size ]; then + # 输入有效,退出循环 + targetFolder="${sorted_keys[@]:$input-1:1}" + echo "你选择的恢复日期是:${targetFolder}" + break + else + # 输入无效,减少重试次数 + retries=$((retries - 1)) + echo "输入有误,请重新输入!你还有 $retries 次机会。" + fi + if [ $retries -eq 0 ]; then + echo "输入错误次数过多,操作已取消。" + return + fi + done + killUserProc + srcpath=${snapshot_paths["${targetFolder}"]} + #echo "srcpath:$srcpath" + rm -rf ~/* >/dev/null 2>&1 + rsync -a $srcpath/ ~/ 2>/dev/null + yellow "快照恢复完成!" + return + elif [ "$input" = "2" ]; then + declare -A foundArr + read -p "输入你要恢复到文件或目录:" infile + + for folder in "${!snapshot_paths[@]}"; do + path="${snapshot_paths[$folder]}" + results=$(find "${path}" -name "$infile" 2>/dev/null) + # echo "111results:|$results|" + if [[ -n "$results" ]]; then + #echo "put |$results| to folder:$folder" + foundArr["$folder"]="$results" + fi + done + local i=1 + sortedFoundArr=($(echo "${!foundArr[@]}" | tr ' ' '\n' | sort -r)) + declare -A indexPathArr + for folder in "${sortedFoundArr[@]}"; do + echo "$i. $folder:" + results="${foundArr[${folder}]}" + IFS=$'\n' read -r -d '' -a paths <<<"$results" + local j=1 + for path in "${paths[@]}"; do + indexPathArr["$i"."$j"]="$path" + echo " $j. $path" + + j=$((j + 1)) + done + i=$((i + 1)) + done + + while [ true ]; do + read -p "输入要恢复的文件序号,格式:日期序号.文件序号, 多个以逗号分隔.(如输入 1.2,3.2)[按enter返回]:" input + regex='^([0-9]+\.[0-9]+)(,[0-9]+\.[0-9]+)*$' + + if [ -z "$input" ]; then + return + fi + + if [[ "$input" =~ $regex ]]; then + declare -a pairNos + declare -a fileNos + IFS=',' read -r -a pairNos <<<"$input" + + echo "请选择文件恢复的目标路径:" + echo "1.原路返回 " + echo "2.${installpath}/restore " + read -p "请选择:" targetDir + + if [[ "$targetDir" != "1" ]] && [[ "$targetDir" != "2" ]]; then + red "无效输入!" + return + fi + + for pairNo in "${pairNos[@]}"; do + srcpath="${indexPathArr[$pairNo]}" + + if [ "$targetDir" = "1" ]; then + local user=$(whoami) + targetPath=${srcpath#*${user}} + if [ -d $srcpath ]; then + targetPath=${targetPath%/*} + fi + echo "cp -r $srcpath $HOME/$targetPath" + cp -r ${srcpath} $HOME/${targetPath} + + elif [ "$targetDir" = "2" ]; then + targetPath="${installpath}/restore" + if [ ! -e "$targetPath" ]; then + mkdir -p "$targetPath" + fi + cp -r $srcpath $targetPath/ + fi + done + green "完成文件恢复" + + else + red "输入格式不对,请重新输入!" + fi + done + fi } uninstall() { - local input=$1 - if [ -z "$input" ]; then - read -p "确定卸载吗? [y/n] [n]:" input - input=${input:-n} - fi - - if [ "$input" == "y" ]; then - delCron - stopSingBox - cd $HOME - rm -rf serv00-play - echo "bye!" - fi + local input=$1 + if [ -z "$input" ]; then + read -p "确定卸载吗? [y/n] [n]:" input + input=${input:-n} + fi + + if [ "$input" == "y" ]; then + delCron + stopSingBox + cd $HOME + rm -rf serv00-play + echo "bye!" + fi } InitServer() { - read -p "$(red "将初始化帐号系统,要继续?[y/n] [n]:")" input - input=${input:-n} - if [[ "$input" != "y" ]]; then - return - fi - read -p "是否保留用户配置?[y/n] [y]:" saveProfile - saveProfile=${saveProfile:-y} - - if [[ "$input" == "y" ]] || [[ "$input" == "Y" ]]; then - cleanCron - green "清理进程中..." - killUserProc - green "清理磁盘中..." - if [[ "$saveProfile" == "y" ]] || [[ "$saveProfile" == "Y" ]]; then - find ~ -mindepth 1 -maxdepth 1 ! -name "domains" ! -name "backups" ! -name "repo" ! -name "mail" ! -name ".*" -exec rm -rf {} + >/dev/null 2>&1 - else - rm -rf ~/* ~/.* 2>/dev/null - clean_all_domains - clean_all_dns - create_default_domain - fi - cleanPort - yellow "初始化完毕" - - exit 0 - fi + read -p "$(red "将初始化帐号系统,要继续?[y/n] [n]:")" input + input=${input:-n} + if [[ "$input" != "y" ]]; then + return + fi + read -p "是否保留用户配置?[y/n] [y]:" saveProfile + saveProfile=${saveProfile:-y} + + if [[ "$input" == "y" ]] || [[ "$input" == "Y" ]]; then + cleanCron + green "清理进程中..." + killUserProc + green "清理磁盘中..." + if [[ "$saveProfile" == "y" ]] || [[ "$saveProfile" == "Y" ]]; then + find ~ -mindepth 1 -maxdepth 1 ! -name "domains" ! -name "backups" ! -name "repo" ! -name "mail" ! -name ".*" -exec rm -rf {} + >/dev/null 2>&1 + else + rm -rf ~/* ~/.* 2>/dev/null + clean_all_domains + clean_all_dns + create_default_domain + fi + cleanPort + yellow "初始化完毕" + + exit 0 + fi } manageNeZhaAgent() { - if ! checkInstalled "serv00-play"; then - return 1 - fi - while true; do - yellow "-------------------------" - echo "探针管理:" - echo "服务状态: $(checkProcStatus nezha-agent)" - echo "1.安装探针(v0或v1)" - echo "2.升级探针(仅v1以上版本)" - echo "3.启动/重启探针" - echo "4.停止探针" - echo "5.卸载探针" - echo "9.返回主菜单" - echo "0.退出脚本" - yellow "-------------------------" - - read -p "请选择:" choice - case $choice in - 1) - installNeZhaAgent - ;; - 2) - updateAgent - ;; - 3) - startAgent - exit 0 - ;; - 4) - stopNeZhaAgent - ;; - 5) - uninstallAgent - ;; - 9) - break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; - esac - done - showMenu + if ! checkInstalled "serv00-play"; then + return 1 + fi + while true; do + yellow "-------------------------" + echo "探针管理:" + echo "服务状态: $(checkProcStatus nezha-agent)" + echo "1.安装探针(v0或v1)" + echo "2.升级探针(仅v1以上版本)" + echo "3.启动/重启探针" + echo "4.停止探针" + echo "5.卸载探针" + echo "9.返回主菜单" + echo "0.退出脚本" + yellow "-------------------------" + + read -p "请选择:" choice + case $choice in + 1) + installNeZhaAgent + ;; + 2) + updateAgent + ;; + 3) + startAgent + exit 0 + ;; + 4) + stopNeZhaAgent + ;; + 5) + uninstallAgent + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu } installNeZhaAgent() { - local workedir="${installpath}/serv00-play/nezha" - if [ ! -e "${workedir}" ]; then - mkdir -p "${workedir}" - fi - - cd ${workedir} - if [ -e nezha-agent ]; then - red "探针已安装,重新安装请先卸载!" - return 1 - fi - echo "确认安装哪吒探针的版本:" - echo "1. v0.20.5" - echo "2. v1 -latest" - read -p "请选择:" ver - if [[ "$ver" != "1" && "$ver" != "2" ]]; then - echo "无效输入!" - return 1 - fi - - echo "正在下载哪吒探针..." - if [[ "$ver" == "1" ]]; then - # 安装v0版本 - local url="https://github.com/nezhahq/agent/releases/download/v0.20.5/nezha-agent_freebsd_amd64.zip" - agentZip="nezha-agent.zip" - if ! wget -qO "$agentZip" "$url"; then - red "下载哪吒探针失败" - return 1 - fi - unzip $agentZip >/dev/null 2>&1 - else - latest_version=$(curl -sL https://github.com/nezhahq/agent/releases/latest | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) - download_url="https://github.com/nezhahq/agent/releases/download/$latest_version/nezha-agent_freebsd_amd64.zip" - local filezip="nezha-agent_latest.zip" - curl -sL -o "$filezip" "$download_url" - if [[ ! -e "$filezip" || -n $(file "$filezip" | grep "text") ]]; then - echo "下载探针文件失败!" - return - fi - unzip -o $filezip -d . - fi - chmod +x ./nezha-agent - green "下载完毕" - - local config="nezha.json" - - read -p "请输入哪吒面板的域名或ip:" nezha_domain - read -p "请输入哪吒面板RPC端口(默认 5555):" nezha_port - nezha_port=${nezha_port:-5555} - read -p "请输入服务器密钥(从哪吒面板中获取):" nezha_pwd - read -p "是否启用针对 gRPC 端口的 SSL/TLS加密 (--tls),需要请按 [y],默认是不需要,不理解用户可回车跳过: " tls - tls=${tls:-"N"} - - if [[ -z "$nezha_domain" || -z "$nezha_port" || -z "$nezha_pwd" ]]; then - red "以上参数都不能为空!" - return 1 - fi - - cat >$config </dev/null 2>&1 + else + latest_version=$(curl -sL https://github.com/nezhahq/agent/releases/latest | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + download_url="https://github.com/nezhahq/agent/releases/download/$latest_version/nezha-agent_freebsd_amd64.zip" + local filezip="nezha-agent_latest.zip" + curl -sL -o "$filezip" "$download_url" + if [[ ! -e "$filezip" || -n $(file "$filezip" | grep "text") ]]; then + echo "下载探针文件失败!" + return + fi + unzip -o $filezip -d . + fi + chmod +x ./nezha-agent + green "下载完毕" + + local config="nezha.json" + + read -p "请输入哪吒面板的域名或ip:" nezha_domain + read -p "请输入哪吒面板RPC端口(默认 5555):" nezha_port + nezha_port=${nezha_port:-5555} + read -p "请输入服务器密钥(从哪吒面板中获取):" nezha_pwd + read -p "是否启用针对 gRPC 端口的 SSL/TLS加密 (--tls),需要请按 [y],默认是不需要,不理解用户可回车跳过: " tls + tls=${tls:-"N"} + + if [[ -z "$nezha_domain" || -z "$nezha_port" || -z "$nezha_pwd" ]]; then + red "以上参数都不能为空!" + return 1 + fi + + cat >$config <$yamlcfg <$yamlcfg </dev/null 2>&1 & - else - nohup ./nezha-agent -c $yamlcfg >/dev/null 2>&1 & - fi - green "哪吒探针成功启动!" + if [[ "$ver" == "1" ]]; then + nohup ./nezha-agent ${args} -s "${nezha_domain}:${nezha_port}" -p "${nezha_pwd}" >/dev/null 2>&1 & + else + nohup ./nezha-agent -c $yamlcfg >/dev/null 2>&1 & + fi + green "哪吒探针成功启动!" } updateAgent() { - exepath="${installpath}/serv00-play/nezha/nezha-agent" - if [ ! -e "$exepath" ]; then - red "未安装探针,请先安装!!!" - return - fi - - cd ${installpath}/serv00-play/nezha - - if ! check_update_from_net "nezha-agent"; then - return 1 - fi - - stopNeZhaAgent - download_from_net "nezha-agent" - if [[ -e "nezha-agent" ]]; then - chmod +x ./nezha-agent - else - red "下载失败!" - return - fi - startNeZhaAgent - green "更新完毕!" - - return + exepath="${installpath}/serv00-play/nezha/nezha-agent" + if [ ! -e "$exepath" ]; then + red "未安装探针,请先安装!!!" + return + fi + + cd ${installpath}/serv00-play/nezha + + if ! check_update_from_net "nezha-agent"; then + return 1 + fi + + stopNeZhaAgent + download_from_net "nezha-agent" + if [[ -e "nezha-agent" ]]; then + chmod +x ./nezha-agent + else + red "下载失败!" + return + fi + startNeZhaAgent + green "更新完毕!" + + return } startAgent() { - local exepath="${installpath}/serv00-play/nezha/nezha-agent" - if [ ! -e "${exepath}" ]; then - red "未安装探针,请先安装!!!" - return - fi - cd "${installpath}/serv00-play/nezha" - - local configfile="./nezha.json" - if [ ! -e "$configfile" ]; then - red "未安装探针,请先安装!!!" - return - fi - - nezha_domain=$(jq -r ".nezha_domain" $configfile) - nezha_port=$(jq -r ".nezha_port" $configfile) - nezha_pwd=$(jq -r ".nezha_pwd" $configfile) - ver=$(jq -r ".version" $configfile) - tls=$(jq -r ".tls" $configfile) - - if checknezhaAgentAlive; then - stopNeZhaAgent - fi - - local args="--report-delay 4 --disable-auto-update --disable-force-update " - if [[ "$tls" == "y" ]]; then - args="${args} --tls " - fi - - if [[ "$ver" == "1" ]]; then - #echo "./nezha-agent ${args} -s ${nezha_domain}:${nezha_port} -p ${nezha_pwd}" - nohup ./nezha-agent ${args} -s ${nezha_domain}:${nezha_port} -p ${nezha_pwd} >/dev/null 2>&1 & - else - nohup ./nezha-agent -c config.yaml 2>&1 & - fi - - if checknezhaAgentAlive; then - green "启动成功!" - else - red "启动失败!" - fi - #即便使用nohup放后台,此处如果使用ctrl+c退出脚本,nezha-agent进程也会退出。非常奇葩,因此startAgent后只能exit退出脚本,避免用户使用ctrl+c退出。 + local exepath="${installpath}/serv00-play/nezha/nezha-agent" + if [ ! -e "${exepath}" ]; then + red "未安装探针,请先安装!!!" + return + fi + cd "${installpath}/serv00-play/nezha" + + local configfile="./nezha.json" + if [ ! -e "$configfile" ]; then + red "未安装探针,请先安装!!!" + return + fi + + nezha_domain=$(jq -r ".nezha_domain" $configfile) + nezha_port=$(jq -r ".nezha_port" $configfile) + nezha_pwd=$(jq -r ".nezha_pwd" $configfile) + ver=$(jq -r ".version" $configfile) + tls=$(jq -r ".tls" $configfile) + + if checknezhaAgentAlive; then + stopNeZhaAgent + fi + + local args="--report-delay 4 --disable-auto-update --disable-force-update " + if [[ "$tls" == "y" ]]; then + args="${args} --tls " + fi + + if [[ "$ver" == "1" ]]; then + #echo "./nezha-agent ${args} -s ${nezha_domain}:${nezha_port} -p ${nezha_pwd}" + nohup ./nezha-agent ${args} -s ${nezha_domain}:${nezha_port} -p ${nezha_pwd} >/dev/null 2>&1 & + else + nohup ./nezha-agent -c config.yaml 2>&1 & + fi + + if checknezhaAgentAlive; then + green "启动成功!" + else + red "启动失败!" + fi + #即便使用nohup放后台,此处如果使用ctrl+c退出脚本,nezha-agent进程也会退出。非常奇葩,因此startAgent后只能exit退出脚本,避免用户使用ctrl+c退出。 } uninstallAgent() { - read -p "确定卸载哪吒探针? [y/n] [n]:" input - input=${input:-n} - - if [[ "$input" == "y" ]]; then - if checknezhaAgentAlive; then - stopNeZhaAgent - fi - local workedir="${installpath}/serv00-play/nezha" - rm -rf $workedir - green "卸载完毕!" - fi + read -p "确定卸载哪吒探针? [y/n] [n]:" input + input=${input:-n} + + if [[ "$input" == "y" ]]; then + if checknezhaAgentAlive; then + stopNeZhaAgent + fi + local workedir="${installpath}/serv00-play/nezha" + rm -rf $workedir + green "卸载完毕!" + fi } manageNeZhaBoard() { - if ! checkInstalled "serv00-play"; then - return 1 - fi - while true; do - yellow "---------------------" - echo "哪吒面板管理(仅支持v1):" - echo "服务状态: $(checkProcStatus nezha-dashboard)" - echo "1. 安装" - echo "2. 启动" - echo "3. 停止" - echo "4. 更新" - echo "8. 卸载" - echo "9. 返回主菜单" - echo "0. 退出脚本" - yellow "---------------------" - read -p "请选择:" input - - case $input in - 1) - installNeZhaDashboard - ;; - 2) - startNeZhaDashboard - ;; - 3) - stopNeZhaDashboard - ;; - 4) - updateNeZhaDashboard - ;; - 8) - uninstallNeZhaDashboard - ;; - 9) - break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; - esac - done - showMenu + if ! checkInstalled "serv00-play"; then + return 1 + fi + while true; do + yellow "---------------------" + echo "哪吒面板管理(仅支持v1):" + echo "服务状态: $(checkProcStatus nezha-dashboard)" + echo "1. 安装" + echo "2. 启动" + echo "3. 停止" + echo "4. 更新" + echo "8. 卸载" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + + case $input in + 1) + installNeZhaDashboard + ;; + 2) + startNeZhaDashboard + ;; + 3) + stopNeZhaDashboard + ;; + 4) + updateNeZhaDashboard + ;; + 8) + uninstallNeZhaDashboard + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu } installNeZhaDashboard() { - local workedir="${installpath}/serv00-play/nezha-board" - if [ ! -e "${workedir}" ]; then - mkdir -p "${workedir}" - fi - - cd ${workedir} - if [ -e "./nezha-dashboard" ]; then - red "面板已安装,重新安装请先卸载!" - return 1 - fi - if ! download_from_net "nezha-dashboard"; then - return 1 - fi - if [[ -e "dashboard" ]]; then - mv ./dashboard ./nezha-dashboard - chmod +x ./nezha-dashboard - else - red "下载失败!" - return 1 - fi - - #自动分配端口 - loadPort - randomPort tcp nezha-dashboard - if [[ -n "$port" ]]; then - nz_port="$port" - else - red "未输入端口号" - return 1 - fi - read -p "请输入站点标题: " nz_site_title - echo "请指定后台语言" - echo "1. 中文(简体)" - echo "2. 中文(繁体)" - echo "3. English" - while true; do - read -p "请输入选项 [1-3]" option - case "${option}" in - 1) - nz_lang=zh_CN - break - ;; - 2) - nz_lang=zh_TW - break - ;; - 3) - nz_lang=en_US - break - ;; - *) - echo "请输入正确的选项 [1-3]" - ;; - esac - done - echo "正在安装哪吒面板,请等待..." - domain="" - webIp="" - if ! makeWWW "" $nz_port; then - echo "绑定域名失败!" - return 1 - fi - if ! applyLE $domain $webIp; then - echo "申请证书失败!" - return 1 - fi - cd ${workedir} - nz_hostport="${domain}:${nz_port}" - #serv00不支持gprc转发,所以不需要tls - - cat >config.yaml <config.yaml <borad.log 2>&1 & - if checkProcAlive nezha-dashboard; then - green "面板已启动!" - else - red "面板启动失败,请查看日志borad.log" - fi + if [ ! -e "${installpath}/serv00-play/nezha-board/nezha-dashboard" ]; then + red "未安装面板,请先安装!!!" + return + fi + cd ${installpath}/serv00-play/nezha-board + if checkProcAlive nezha-dashboard; then + stopNeZhaDashboard + fi + if [ ! -e "config.yaml" ]; then + red "未安装面板,请先安装!!!" + return + fi + nohup ./nezha-dashboard -c config.yaml >borad.log 2>&1 & + if checkProcAlive nezha-dashboard; then + green "面板已启动!" + else + red "面板启动失败,请查看日志borad.log" + fi } stopNeZhaDashboard() { - if checkProcAlive nezha-dashboard; then - stopProc nezha-dashboard - else - red "面板未启动!" - fi + if checkProcAlive nezha-dashboard; then + stopProc nezha-dashboard + else + red "面板未启动!" + fi } updateNeZhaDashboard() { - if [ ! -e "${installpath}/serv00-play/nezha-board/nezha-dashboard" ]; then - red "未安装面板,请先安装!!!" - return - fi - cd ${installpath}/serv00-play/nezha-board - - if ! check_update_from_net "nezha-dashboard"; then - return 1 - fi - - stopNeZhaDashboard - download_from_net "nezha-dashboard" - if [[ -e "dashboard" ]]; then - mv -f ./dashboard ./nezha-dashboard - chmod +x ./nezha-dashboard - fi - startNeZhaDashboard - green "更新完毕!" - - return + if [ ! -e "${installpath}/serv00-play/nezha-board/nezha-dashboard" ]; then + red "未安装面板,请先安装!!!" + return + fi + cd ${installpath}/serv00-play/nezha-board + + if ! check_update_from_net "nezha-dashboard"; then + return 1 + fi + + stopNeZhaDashboard + download_from_net "nezha-dashboard" + if [[ -e "dashboard" ]]; then + mv -f ./dashboard ./nezha-dashboard + chmod +x ./nezha-dashboard + fi + startNeZhaDashboard + green "更新完毕!" + + return } uninstallNeZhaDashboard() { - local workedir="${installpath}/serv00-play/nezha-board" - if [ ! -e "${workedir}" ]; then - red "未安装面板!" - return - fi - uninstallProc $workedir "nezha-dashboard" + local workedir="${installpath}/serv00-play/nezha-board" + if [ ! -e "${workedir}" ]; then + red "未安装面板!" + return + fi + uninstallProc $workedir "nezha-dashboard" } setCnTimeZone() { - read -p "确定设置中国上海时区? [y/n] [y]:" input - input=${input:-y} - - cd ${installpath} - if [ "$input" = "y" ]; then - devil binexec on - touch .profile - cat .profile | perl ./serv00-play/mkprofile.pl >tmp_profile - mv -f tmp_profile .profile - - read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input - input=${input:-y} - - if [ "$input" = "y" ]; then - kill -9 $PPID - fi - fi + read -p "确定设置中国上海时区? [y/n] [y]:" input + input=${input:-y} + + cd ${installpath} + if [ "$input" = "y" ]; then + devil binexec on + touch .profile + cat .profile | perl ./serv00-play/mkprofile.pl >tmp_profile + mv -f tmp_profile .profile + + read -p "$(yellow 设置完毕,需要重新登录才能生效,是否重新登录?[y/n] [y]:)" input + input=${input:-y} + + if [ "$input" = "y" ]; then + kill -9 $PPID + fi + fi } setColorWord() { - cd ${installpath} - # 定义颜色编码 - bright_black="\033[1;90m" - bright_red="\033[1;91m" - bright_green="\033[1;92m" - bright_yellow="\033[1;93m" - bright_blue="\033[1;94m" - bright_magenta="\033[1;95m" - bright_cyan="\033[1;96m" - bright_white="\033[1;97m" - reset="\033[0m" - - # 显示颜色选项列表,并使用颜色着色 - echo -e "请选择一个颜色来输出你的签名:" - echo -e "1) ${bright_black}明亮黑色${reset}" - echo -e "2) ${bright_red}明亮红色${reset}" - echo -e "3) ${bright_green}明亮绿色${reset}" - echo -e "4) ${bright_yellow}明亮黄色${reset}" - echo -e "5) ${bright_blue}明亮蓝色${reset}" - echo -e "6) ${bright_magenta}明亮紫色${reset}" - echo -e "7) ${bright_cyan}明亮青色${reset}" - echo -e "8) ${bright_white}明亮白色${reset}" - - # 读取用户输入的选择 - read -p "请输入你的选择(1-8): " color_choice - - read -p "请输入你的大名(仅支持ascii字符):" name - - # 根据用户的选择设置颜色 - case $color_choice in - 1) color_code="90" ;; # 明亮黑色 - 2) color_code="91" ;; # 明亮红色 - 3) color_code="92" ;; # 明亮绿色 - 4) color_code="93" ;; # 明亮黄色 - 5) color_code="94" ;; # 明亮蓝色 - 6) color_code="95" ;; # 明亮紫色 - 7) color_code="96" ;; # 明亮青色 - 8) color_code="97" ;; # 明亮白色 - *) - echo "无效选择,使用默认颜色 (明亮白色)" - color_code="97" - ;; - esac - - if grep "chAngEYourName" .profile >/dev/null; then - cat .profile | grep -v "chAngEYourName" >tmp_profile - echo "echo -e \"\033[1;${color_code}m\$(figlet \"${name}\")\033[0m\" #chAngEYourName" >>tmp_profile - mv -f tmp_profile .profile - else - echo "echo -e \"\033[1;${color_code}m\$(figlet \"${name}\")\033[0m\" #chAngEYourName" >>.profile - fi - - read -p "设置完毕! 重新登录看效果? [y/n] [y]:" input - input=${input:-y} - if [[ "$input" == "y" ]]; then - kill -9 $PPID - fi + cd ${installpath} + # 定义颜色编码 + bright_black="\033[1;90m" + bright_red="\033[1;91m" + bright_green="\033[1;92m" + bright_yellow="\033[1;93m" + bright_blue="\033[1;94m" + bright_magenta="\033[1;95m" + bright_cyan="\033[1;96m" + bright_white="\033[1;97m" + reset="\033[0m" + + # 显示颜色选项列表,并使用颜色着色 + echo -e "请选择一个颜色来输出你的签名:" + echo -e "1) ${bright_black}明亮黑色${reset}" + echo -e "2) ${bright_red}明亮红色${reset}" + echo -e "3) ${bright_green}明亮绿色${reset}" + echo -e "4) ${bright_yellow}明亮黄色${reset}" + echo -e "5) ${bright_blue}明亮蓝色${reset}" + echo -e "6) ${bright_magenta}明亮紫色${reset}" + echo -e "7) ${bright_cyan}明亮青色${reset}" + echo -e "8) ${bright_white}明亮白色${reset}" + + # 读取用户输入的选择 + read -p "请输入你的选择(1-8): " color_choice + + read -p "请输入你的大名(仅支持ascii字符):" name + + # 根据用户的选择设置颜色 + case $color_choice in + 1) color_code="90" ;; # 明亮黑色 + 2) color_code="91" ;; # 明亮红色 + 3) color_code="92" ;; # 明亮绿色 + 4) color_code="93" ;; # 明亮黄色 + 5) color_code="94" ;; # 明亮蓝色 + 6) color_code="95" ;; # 明亮紫色 + 7) color_code="96" ;; # 明亮青色 + 8) color_code="97" ;; # 明亮白色 + *) + echo "无效选择,使用默认颜色 (明亮白色)" + color_code="97" + ;; + esac + + if grep "chAngEYourName" .profile >/dev/null; then + cat .profile | grep -v "chAngEYourName" >tmp_profile + echo "echo -e \"\033[1;${color_code}m\$(figlet \"${name}\")\033[0m\" #chAngEYourName" >>tmp_profile + mv -f tmp_profile .profile + else + echo "echo -e \"\033[1;${color_code}m\$(figlet \"${name}\")\033[0m\" #chAngEYourName" >>.profile + fi + + read -p "设置完毕! 重新登录看效果? [y/n] [y]:" input + input=${input:-y} + if [[ "$input" == "y" ]]; then + kill -9 $PPID + fi } showIP() { - myip="$(curl -s icanhazip.com)" - green "本机IP: $myip" + myip="$(curl -s icanhazip.com)" + green "本机IP: $myip" } uninstallMtg() { - read -p "确定卸载? [y/n] [n]:" input - input=${input:-n} - - if [[ "$input" == "n" ]]; then - return 1 - fi - - if [[ -e "mtg" ]]; then - if checkProcAlive mtg; then - stopMtg - fi - cd ${installpath}/serv00-play - rm -rf dmtg - green "卸载完毕!" - fi + read -p "确定卸载? [y/n] [n]:" input + input=${input:-n} + + if [[ "$input" == "n" ]]; then + return 1 + fi + + if [[ -e "mtg" ]]; then + if checkProcAlive mtg; then + stopMtg + fi + cd ${installpath}/serv00-play + rm -rf dmtg + green "卸载完毕!" + fi } installMtg() { - local workedir="${installpath}/serv00-play/dmtg" - if [ ! -e "${workedir}" ]; then - mkdir -p "${workedir}" - fi - cd ${workedir} - - if [ ! -e "mtg" ]; then - # read -p "请输入使用密码:" password - if ! checkDownload "mtg"; then - return 1 - fi - fi - - chmod +x ./mtg - if [ -e "config.json" ]; then - echo "已存在配置如下:" - cat config.json - read -p "是否重新生成配置? [y/n] [n]:" input - input=${input:-n} - if [ "$input" == "n" ]; then - return 0 - fi - fi - - #自动生成密钥 - head=$(hostname | cut -d '.' -f 1) - no=${head#s} - host="panel${no}.$(getDoMain)" - secret=$(./mtg generate-secret --hex $host) - loadPort - randomPort tcp mtg - if [[ -n "$port" ]]; then - mtpport="$port" - fi - - cat >config.json <config.json <&1 &" - eval "$cmd" - sleep 3 - if checkMtgAlive; then - mtproto="https://t.me/proxy?server=${host}.$(getDoMain)&port=${port}&secret=${secret}" - echo "$mtproto" - green "启动成功" - else - echo "启动失败,请检查进程" - fi + cd ${installpath}/serv00-play + + if [ ! -e "dmtg" ]; then + ehco "未安装mtproto,请先行安装配置!" + return 1 + fi + cd dmtg + config="config.json" + if [ ! -e $config ]; then + red "未安装mtproto,请先行安装配置!" + return 1 + fi + + if checkMtgAlive; then + echo "已在运行,请勿重复启动" + return 0 + fi + + read -p "是否需要日志?: [y/n] [n]:" input + input=${input:-n} + + if [ "$input" == "y" ]; then + green "日志文件名称为:mtg.log" + logfile="-d >mtg.log" + else + logfile=" >/dev/null " + fi + + host="$(hostname | cut -d '.' -f 1)" + + secret=$(jq -r ".secret" $config) + port=$(jq -r ".port" $config) + + cmd="nohup ./mtg simple-run -n 1.1.1.1 -t 30s -a 1MB 0.0.0.0:${port} ${secret} -c 8192 --prefer-ip=\"prefer-ipv6\" ${logfile} 2>&1 &" + eval "$cmd" + sleep 3 + if checkMtgAlive; then + mtproto="https://t.me/proxy?server=${host}.$(getDoMain)&port=${port}&secret=${secret}" + echo "$mtproto" + green "启动成功" + else + echo "启动失败,请检查进程" + fi } stopMtg() { - r=$(ps aux | grep mtg | grep -v "grep" | awk '{print $2}') - if [ -z "$r" ]; then - echo "没有运行!" - return - else - kill -9 $r - fi - echo "已停掉mtproto!" + r=$(ps aux | grep mtg | grep -v "grep" | awk '{print $2}') + if [ -z "$r" ]; then + echo "没有运行!" + return + else + kill -9 $r + fi + echo "已停掉mtproto!" } mtprotoServ() { - if ! checkInstalled "serv00-play"; then - return 1 - fi - cd ${installpath}/serv00-play - - if [ ! -e "dmtg" ]; then - mkdir -p dmtg - fi - cd dmtg - - while true; do - yellow "---------------------" - echo "服务状态: $(checkProcStatus mtg)" - echo "mtproto管理:" - echo "1. 安装" - echo "2. 启动" - echo "3. 停止" - echo "4. 卸载" - echo "9. 返回主菜单" - echo "0. 退出脚本" - yellow "---------------------" - read -p "请选择:" input - - case $input in - 1) - installMtg - ;; - 2) - startMtg - ;; - 3) - stopMtg - ;; - 4) - uninstallMtg - ;; - 9) - break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; - esac - done - showMenu + if ! checkInstalled "serv00-play"; then + return 1 + fi + cd ${installpath}/serv00-play + + if [ ! -e "dmtg" ]; then + mkdir -p dmtg + fi + cd dmtg + + while true; do + yellow "---------------------" + echo "服务状态: $(checkProcStatus mtg)" + echo "mtproto管理:" + echo "1. 安装" + echo "2. 启动" + echo "3. 停止" + echo "4. 卸载" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + + case $input in + 1) + installMtg + ;; + 2) + startMtg + ;; + 3) + stopMtg + ;; + 4) + uninstallMtg + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu } extract_user_and_password() { - output=$1 + output=$1 - username=$(echo "$output" | grep "username:" | sed 's/.*username: //') - password=$(echo "$output" | grep "password:" | sed 's/.*password: //') - echo "生成用户密码如下,请谨记! 只会出现一次:" - green "Username: $username" - green "Password: $password" + username=$(echo "$output" | grep "username:" | sed 's/.*username: //') + password=$(echo "$output" | grep "password:" | sed 's/.*password: //') + echo "生成用户密码如下,请谨记! 只会出现一次:" + green "Username: $username" + green "Password: $password" } update_http_port() { - cd data || return 1 - local port=$1 - local config_file="config.json" + cd data || return 1 + local port=$1 + local config_file="config.json" - if [ -z "$port" ]; then - echo "Error: No port number provided." - return 1 - fi - # 使用 jq 来更新配置文件中的 http_port - jq --argjson new_port "$port" '.scheme.http_port = $new_port' "$config_file" >tmp.$$.json && mv tmp.$$.json "$config_file" + if [ -z "$port" ]; then + echo "Error: No port number provided." + return 1 + fi + # 使用 jq 来更新配置文件中的 http_port + jq --argjson new_port "$port" '.scheme.http_port = $new_port' "$config_file" >tmp.$$.json && mv tmp.$$.json "$config_file" - echo "配置文件处理完毕." + echo "配置文件处理完毕." } installAlist() { - if ! checkInstalled "serv00-play"; then - return 1 - fi - cd ${installpath}/serv00-play/ || return 1 - alistpath="${installpath}/serv00-play/alist" - - if [[ ! -e "$alistpath" ]]; then - mkdir -p $alistpath - fi - if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then - echo "已安装,请勿重复安装。" - return - else - cd "alist" || return 1 - if [ ! -e "alist" ]; then - if ! download_from_net "alist"; then - return 1 - fi - fi - fi - - loadPort - randomPort tcp alist - if [[ -n "$port" ]]; then - alist_port="$port" - fi - echo "正在安装alist,请等待..." - domain="" - webIp="" - if ! makeWWW alist $alist_port; then - echo "绑定域名失败!" - return 1 - fi - if ! applyLE $domain $webIp; then - echo "申请证书失败!" - return 1 - fi - cd $alistpath - rt=$(chmod +x ./alist && ./alist admin random 2>&1) - extract_user_and_password "$rt" - update_http_port "$alist_port" - - green "安装完毕" + if ! checkInstalled "serv00-play"; then + return 1 + fi + cd ${installpath}/serv00-play/ || return 1 + alistpath="${installpath}/serv00-play/alist" + + if [[ ! -e "$alistpath" ]]; then + mkdir -p $alistpath + fi + if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then + echo "已安装,请勿重复安装。" + return + else + cd "alist" || return 1 + if [ ! -e "alist" ]; then + if ! download_from_net "alist"; then + return 1 + fi + fi + fi + + loadPort + randomPort tcp alist + if [[ -n "$port" ]]; then + alist_port="$port" + fi + echo "正在安装alist,请等待..." + domain="" + webIp="" + if ! makeWWW alist $alist_port; then + echo "绑定域名失败!" + return 1 + fi + if ! applyLE $domain $webIp; then + echo "申请证书失败!" + return 1 + fi + cd $alistpath + rt=$(chmod +x ./alist && ./alist admin random 2>&1) + extract_user_and_password "$rt" + update_http_port "$alist_port" + + green "安装完毕" } startAlist() { - alistpath="${installpath}/serv00-play/alist" - cd $alistpath - domain=$(jq -r ".domain" config.json) - - if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then - cd $alistpath - echo "正在启动alist..." - if checkProcAlive alist; then - echo "alist已启动,请勿重复启动!" - else - nohup ./alist server >/dev/null 2>&1 & - sleep 3 - if ! checkProcAlive alist; then - red "启动失败,请检查!" - return 1 - else - green "启动成功!" - green "alist管理地址: https://$domain" - fi - fi - else - red "请先行安装再启动!" - return - fi + alistpath="${installpath}/serv00-play/alist" + cd $alistpath + domain=$(jq -r ".domain" config.json) + + if [[ -d "$alistpath/data" && -e "$alistpath/alist" ]]; then + cd $alistpath + echo "正在启动alist..." + if checkProcAlive alist; then + echo "alist已启动,请勿重复启动!" + else + nohup ./alist server >/dev/null 2>&1 & + sleep 3 + if ! checkProcAlive alist; then + red "启动失败,请检查!" + return 1 + else + green "启动成功!" + green "alist管理地址: https://$domain" + fi + fi + else + red "请先行安装再启动!" + return + fi } stopAlist() { - if checkProcAlive "alist"; then - stopProc "alist" - sleep 3 - fi + if checkProcAlive "alist"; then + stopProc "alist" + sleep 3 + fi } @@ -1947,364 +1947,364 @@ stopAlist() { # } uninstallProc() { - local path=$1 - local procname=$2 - - if [ ! -e "$path" ]; then - red "未安装$procname!!!" - return 1 - fi - cd $path - read -p "确定卸载${procname}吗? [y/n] [n]:" input - input=${input:-n} - if [[ "$input" == "y" ]]; then - stopProc "$procname" - domain=$(jq -r ".domain" config.json) - webip=$(jq -r ".webip" config.json) - resp=$(devil ssl www del $webIp $domain) - resp=$(devil www del $domain --remove) - cd ${installpath}/serv00-play - rm -rf $path - green "卸载完毕!" - fi + local path=$1 + local procname=$2 + + if [ ! -e "$path" ]; then + red "未安装$procname!!!" + return 1 + fi + cd $path + read -p "确定卸载${procname}吗? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" == "y" ]]; then + stopProc "$procname" + domain=$(jq -r ".domain" config.json) + webip=$(jq -r ".webip" config.json) + resp=$(devil ssl www del $webIp $domain) + resp=$(devil www del $domain --remove) + cd ${installpath}/serv00-play + rm -rf $path + green "卸载完毕!" + fi } uninstallAlist() { - alistpath="${installpath}/serv00-play/alist" - uninstallProc "$alistpath" alist + alistpath="${installpath}/serv00-play/alist" + uninstallProc "$alistpath" alist } resetAdminPass() { - alistpath="${installpath}/serv00-play/alist" - cd $alistpath + alistpath="${installpath}/serv00-play/alist" + cd $alistpath - output=$(./alist admin random 2>&1) - extract_user_and_password "$output" + output=$(./alist admin random 2>&1) + extract_user_and_password "$output" } updateAlist() { - cd ${installpath}/serv00-play/alist || (echo "未安装alist" && return) + cd ${installpath}/serv00-play/alist || (echo "未安装alist" && return) - if ! check_update_from_net "alist"; then - return 1 - fi + if ! check_update_from_net "alist"; then + return 1 + fi - stopAlist - download_from_net "alist" - chmod +x ./alist - startAlist - echo "更新完毕!" + stopAlist + download_from_net "alist" + chmod +x ./alist + startAlist + echo "更新完毕!" } alistServ() { - if ! checkInstalled "serv00-play"; then - return 1 - fi - while true; do - yellow "----------------------" - echo "alist:" - echo "服务状态: $(checkProcStatus alist)" - echo "1. 安装部署" - echo "2. 启动" - echo "3. 停掉" - echo "4. 重置admin密码" - echo "5. 更新" - echo "8. 卸载" - echo "9. 返回主菜单" - echo "0. 退出脚本" - yellow "----------------------" - read -p "请选择:" input - - case $input in - 1) - installAlist - ;; - 2) - startAlist - ;; - 3) - stopAlist - ;; - 4) - resetAdminPass - ;; - 5) - updateAlist - ;; - 8) - uninstallAlist - ;; - 9) - break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; - esac - done - showMenu + if ! checkInstalled "serv00-play"; then + return 1 + fi + while true; do + yellow "----------------------" + echo "alist:" + echo "服务状态: $(checkProcStatus alist)" + echo "1. 安装部署" + echo "2. 启动" + echo "3. 停掉" + echo "4. 重置admin密码" + echo "5. 更新" + echo "8. 卸载" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "----------------------" + read -p "请选择:" input + + case $input in + 1) + installAlist + ;; + 2) + startAlist + ;; + 3) + stopAlist + ;; + 4) + resetAdminPass + ;; + 5) + updateAlist + ;; + 8) + uninstallAlist + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu } declare -a indexPorts loadIndexPorts() { - output=$(devil port list) - - indexPorts=() - # 解析输出内容 - index=0 - while read -r port typ opis; do - # 跳过标题行 - if [[ "$port" =~ "Port" ]]; then - continue - fi - #echo "port:$port,typ:$typ, opis:$opis" - if [[ "$port" =~ "Brak" || "$port" =~ "No" ]]; then - echo "未分配端口" - return 0 - fi - - if [[ -n "$port" ]]; then - opis=${opis:-""} - indexPorts[$index]="$port|$typ|$opis" - ((index++)) - fi - done <<<"$output" + output=$(devil port list) + + indexPorts=() + # 解析输出内容 + index=0 + while read -r port typ opis; do + # 跳过标题行 + if [[ "$port" =~ "Port" ]]; then + continue + fi + #echo "port:$port,typ:$typ, opis:$opis" + if [[ "$port" =~ "Brak" || "$port" =~ "No" ]]; then + echo "未分配端口" + return 0 + fi + + if [[ -n "$port" ]]; then + opis=${opis:-""} + indexPorts[$index]="$port|$typ|$opis" + ((index++)) + fi + done <<<"$output" } printIndexPorts() { - local i=1 - echo " Port | Type | Description" - for entry in "${indexPorts[@]}"; do - # 使用 | 作为分隔符拆分 port、typ 和 opis - - IFS='|' read -r port typ opis <<<"$entry" - echo "${i}. $port | $typ | $opis" - ((i++)) - done + local i=1 + echo " Port | Type | Description" + for entry in "${indexPorts[@]}"; do + # 使用 | 作为分隔符拆分 port、typ 和 opis + + IFS='|' read -r port typ opis <<<"$entry" + echo "${i}. $port | $typ | $opis" + ((i++)) + done } delPortMenu() { - loadIndexPorts - local portNum=${#indexPorts[@]} - if [[ ${portNum} -gt 0 ]]; then - printIndexPorts - read -p "请选择要删除的端口记录编号(输入-1删除所有端口记录, 回车返回):" number - number=${number:-99} - - if [[ $number -eq 99 ]]; then - return - elif [[ $number -gt $portNum || $number -lt -1 || $number -eq 0 ]]; then - echo "非法输入!" - return - elif [[ $number -eq -1 ]]; then - cleanPort - else - idx=$((number - 1)) - IFS='|' read -r port typ opis <<<${indexPorts[$idx]} - devil port del $typ $port >/dev/null 2>&1 - fi - echo "删除完毕!" - else - red "未有分配任何端口!" - fi + loadIndexPorts + local portNum=${#indexPorts[@]} + if [[ ${portNum} -gt 0 ]]; then + printIndexPorts + read -p "请选择要删除的端口记录编号(输入-1删除所有端口记录, 回车返回):" number + number=${number:-99} + + if [[ $number -eq 99 ]]; then + return + elif [[ $number -gt $portNum || $number -lt -1 || $number -eq 0 ]]; then + echo "非法输入!" + return + elif [[ $number -eq -1 ]]; then + cleanPort + else + idx=$((number - 1)) + IFS='|' read -r port typ opis <<<${indexPorts[$idx]} + devil port del $typ $port >/dev/null 2>&1 + fi + echo "删除完毕!" + else + red "未有分配任何端口!" + fi } addPortMenu() { - echo "选择端口类型:" - echo "1. tcp" - echo "2. udp" - read -p "请选择:" co - - if [[ "$co" != "1" && "$co" != "2" ]]; then - red "非法输入" - return - fi - local type="" - if [[ "$co" == "1" ]]; then - type="tcp" - else - type="udp" - fi - loadPort - read -p "请输入端口备注(如hy2,vmess,用于脚本自动获取端口):" opts - read -p "是否自动分配端口? [y/n] [y]:" input - input=${input:-y} - if [[ "$input" == "y" ]]; then - port=$(getPort $type $opts) - if [[ "$port" == "failed" ]]; then - red "分配端口失败,请重新操作!" - else - green "分配出来的端口是:$port" - fi - else - read -p "请输入端口号:" port - if [[ -z "$port" ]]; then - red "端口不能为空" - return 1 - fi - resp=$(devil port add $type $port $opts) - if [[ "$resp" =~ .*succesfully.*$ || "$resp" =~ .*Ok.*$ ]]; then - green "添加端口成功!" - else - red "添加端口失败!" - fi - fi + echo "选择端口类型:" + echo "1. tcp" + echo "2. udp" + read -p "请选择:" co + + if [[ "$co" != "1" && "$co" != "2" ]]; then + red "非法输入" + return + fi + local type="" + if [[ "$co" == "1" ]]; then + type="tcp" + else + type="udp" + fi + loadPort + read -p "请输入端口备注(如hy2,vmess,用于脚本自动获取端口):" opts + read -p "是否自动分配端口? [y/n] [y]:" input + input=${input:-y} + if [[ "$input" == "y" ]]; then + port=$(getPort $type $opts) + if [[ "$port" == "failed" ]]; then + red "分配端口失败,请重新操作!" + else + green "分配出来的端口是:$port" + fi + else + read -p "请输入端口号:" port + if [[ -z "$port" ]]; then + red "端口不能为空" + return 1 + fi + resp=$(devil port add $type $port $opts) + if [[ "$resp" =~ .*succesfully.*$ || "$resp" =~ .*Ok.*$ ]]; then + green "添加端口成功!" + else + red "添加端口失败!" + fi + fi } portServ() { - while true; do - yellow "----------------------" - echo "端口管理:" - echo "1. 删除某条端口记录" - echo "2. 增加一条端口记录" - echo "9. 返回主菜单" - echo "0. 退出脚本" - yellow "----------------------" - read -p "请选择:" input - case $input in - 1) - delPortMenu - ;; - 2) - addPortMenu - ;; - 9) - break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; - esac - done - showMenu -} - -cronLE() { - local nointeraction=$1 - if [[ -n "$nointeraction" ]]; then - tm=1 - else - read -p "请输入定时运行的时间间隔(小时[1-23]):" tm - tm=${tm:-""} - if [[ -z "$tm" ]]; then - red "时间不能为空" - return 1 - fi - if [[ $tm -lt 1 || $tm -gt 23 ]]; then - red "输入非法!" - return 1 - fi - fi - crontab -l >le.cron - echo "0 */$tm * * * $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron - crontab le.cron >/dev/null 2>&1 - rm -rf le.cron - echo "设置完毕!" -} + while true; do + yellow "----------------------" + echo "端口管理:" + echo "1. 删除某条端口记录" + echo "2. 增加一条端口记录" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "----------------------" + read -p "请选择:" input + case $input in + 1) + delPortMenu + ;; + 2) + addPortMenu + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu +} + +cronLE() { + local nointeraction=$1 + if [[ -n "$nointeraction" ]]; then + tm=1 + else + read -p "请输入定时运行的时间间隔(小时[1-23]):" tm + tm=${tm:-""} + if [[ -z "$tm" ]]; then + red "时间不能为空" + return 1 + fi + if [[ $tm -lt 1 || $tm -gt 23 ]]; then + red "输入非法!" + return 1 + fi + fi + crontab -l >le.cron + echo "0 */$tm * * * $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron + crontab le.cron >/dev/null 2>&1 + rm -rf le.cron + echo "设置完毕!" +} get_default_webip() { - local host="$(hostname | cut -d '.' -f 1)" - local sno=${host/s/web} - local webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') - echo "$webIp" + local host="$(hostname | cut -d '.' -f 1)" + local sno=${host/s/web} + local webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') + echo "$webIp" } applyLE() { - local l_domain=$1 - local l_webip=$2 - local nointeraction=$3 - workpath="${installpath}/serv00-play/ssl" - cd "$workpath" - - #echo "domain=$l_domain, webip=$l_webip, nointeraction=$nointeraction" - if [[ -z "$l_domain" ]]; then - read -p "请输入待申请证书的域名:" domain - l_domain=${l_domain:-""} - if [[ -z "$l_domain" ]]; then - red "域名不能为空" - return 1 - fi - fi - inCron="0" - if crontab -l | grep -F "$l_domain" >/dev/null 2>&1; then - inCron="1" - if [[ -z "$nointeraction" ]]; then - echo "该域名已配置定时申请证书,是否删除定时配置记录,改为手动申请?[y/n] [n]:" input - input=${input:-n} - - if [[ "$input" == "y" ]]; then - crontab -l | grep -v "$l_domain" | crontab - - fi - else - crontab -l | grep -v "$l_domain" | crontab - - fi - fi - if [[ -z "$l_webip" ]]; then - read -p "是否指定webip? [y/n] [n]:" input - input=${input:-n} - - if [[ "$input" == "y" ]]; then - read -p "请输入webIp:" l_webip - if [[ -z "$l_webip" ]]; then - red "webIp 不能为空!!!" - return 1 - fi - else - host="$(hostname | cut -d '.' -f 1)" - sno=${host/s/web} - l_webip=$(devil vhost list public | grep "$sno" | awk '{print $1}') - fi - fi - #echo "申请证书时,webip是: $l_webip" - resp=$(devil ssl www add $l_webip le le $l_domain) - if [[ ! "$resp" =~ .*succesfully.*$ ]]; then - red "申请ssl证书失败!$resp" - if [[ "$inCron" == "0" ]]; then - if [[ -z "$nointeraction" ]]; then - read -p "是否配置定时任务自动申请SSL证书? [y/n] [n]:" input - input=${input:-n} - else - input="y" - fi - if [[ "$input" == "y" ]]; then - if [[ -z "$nointeraction" ]]; then - cronLE - else - cronLE $nointeraction - fi - fi - fi - else - green "证书申请成功!" - fi - cd - + local l_domain=$1 + local l_webip=$2 + local nointeraction=$3 + workpath="${installpath}/serv00-play/ssl" + cd "$workpath" + + #echo "domain=$l_domain, webip=$l_webip, nointeraction=$nointeraction" + if [[ -z "$l_domain" ]]; then + read -p "请输入待申请证书的域名:" domain + l_domain=${l_domain:-""} + if [[ -z "$l_domain" ]]; then + red "域名不能为空" + return 1 + fi + fi + inCron="0" + if crontab -l | grep -F "$l_domain" >/dev/null 2>&1; then + inCron="1" + if [[ -z "$nointeraction" ]]; then + echo "该域名已配置定时申请证书,是否删除定时配置记录,改为手动申请?[y/n] [n]:" input + input=${input:-n} + + if [[ "$input" == "y" ]]; then + crontab -l | grep -v "$l_domain" | crontab - + fi + else + crontab -l | grep -v "$l_domain" | crontab - + fi + fi + if [[ -z "$l_webip" ]]; then + read -p "是否指定webip? [y/n] [n]:" input + input=${input:-n} + + if [[ "$input" == "y" ]]; then + read -p "请输入webIp:" l_webip + if [[ -z "$l_webip" ]]; then + red "webIp 不能为空!!!" + return 1 + fi + else + host="$(hostname | cut -d '.' -f 1)" + sno=${host/s/web} + l_webip=$(devil vhost list public | grep "$sno" | awk '{print $1}') + fi + fi + #echo "申请证书时,webip是: $l_webip" + resp=$(devil ssl www add $l_webip le le $l_domain) + if [[ ! "$resp" =~ .*succesfully.*$ ]]; then + red "申请ssl证书失败!$resp" + if [[ "$inCron" == "0" ]]; then + if [[ -z "$nointeraction" ]]; then + read -p "是否配置定时任务自动申请SSL证书? [y/n] [n]:" input + input=${input:-n} + else + input="y" + fi + if [[ "$input" == "y" ]]; then + if [[ -z "$nointeraction" ]]; then + cronLE + else + cronLE $nointeraction + fi + fi + fi + else + green "证书申请成功!" + fi + cd - } selfSSL() { - workpath="${installpath}/serv00-play/ssl" - cd "$workpath" - - read -p "请输入待申请证书的域名:" self_domain - self_domain=${self_domain:-""} - if [[ -z "$self_domain" ]]; then - red "域名不能为空" - return 1 - fi + workpath="${installpath}/serv00-play/ssl" + cd "$workpath" + + read -p "请输入待申请证书的域名:" self_domain + self_domain=${self_domain:-""} + if [[ -z "$self_domain" ]]; then + red "域名不能为空" + return 1 + fi - echo "正在生成证书..." + echo "正在生成证书..." - cat >openssl.cnf <openssl.cnf </dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "生成证书失败!" - return 1 - fi - - echo "已生成证书:" - green "_private.key" - green "_cert.crt" - - echo "正在导入证书.." - host="$(hostname | cut -d '.' -f 1)" - sno=${host/s/web} - webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') - resp=$(devil ssl www add "$webIp" ./_cert.crt ./_private.key "$self_domain") - - if [[ ! "$resp" =~ .*succesfully.*$ ]]; then - echo "导入证书失败:$resp" - return 1 - fi - - echo "导入成功!" - cd - + openssl req -new -newkey rsa:2048 -nodes -keyout _private.key -x509 -days 3650 -out _cert.crt -config openssl.cnf -extensions v3_ca >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "生成证书失败!" + return 1 + fi + + echo "已生成证书:" + green "_private.key" + green "_cert.crt" + + echo "正在导入证书.." + host="$(hostname | cut -d '.' -f 1)" + sno=${host/s/web} + webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') + resp=$(devil ssl www add "$webIp" ./_cert.crt ./_private.key "$self_domain") + + if [[ ! "$resp" =~ .*succesfully.*$ ]]; then + echo "导入证书失败:$resp" + return 1 + fi + + echo "导入成功!" + cd - } domainSSLServ() { - while true; do - yellow "---------------------" - echo "域名证书管理:" - echo "1. 抢域名证书" - echo "2. 配置自签证书" - echo "9. 返回主菜单" - echo "0. 退出脚本" - yellow "---------------------" - read -p "请选择:" input - - case $input in - 1) - applyLE - ;; - 2) - selfSSL - ;; - 9) - break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; - esac - done - showMenu + while true; do + yellow "---------------------" + echo "域名证书管理:" + echo "1. 抢域名证书" + echo "2. 配置自签证书" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + + case $input in + 1) + applyLE + ;; + 2) + selfSSL + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu } installRoot() { - workpath="${installpath}/serv00-play/root" - if [[ ! -e $workpath ]]; then - mkdir -p "$workpath" - fi - - if [[ -e "$workpath/MrChrootBSD/mrchroot" ]]; then - echo "检测到已经安装mrchroot,请勿重复安装!" - return - fi - echo "正在安装..." - cd $workpath - git clone https://github.com/nrootconauto/MrChrootBSD.git - cd MrChrootBSD - wget https://download.freebsd.org/releases/amd64/14.1-RELEASE/base.txz - wget https://download.freebsd.org/releases/amd64/14.1-RELEASE/lib32.txz #Needed for gdb for some reason - mkdir chroot - cd chroot - tar xvf ../base.txz - tar xvf ../lib32.txz - cd .. - cmake . - make - cp /etc/resolv.conf chroot/etc - if screen -S rootsession -dm ./mrchroot chroot /bin/sh; then - echo "安装成功!" - else - echo "安装失败!" - fi + workpath="${installpath}/serv00-play/root" + if [[ ! -e $workpath ]]; then + mkdir -p "$workpath" + fi + + if [[ -e "$workpath/MrChrootBSD/mrchroot" ]]; then + echo "检测到已经安装mrchroot,请勿重复安装!" + return + fi + echo "正在安装..." + cd $workpath + git clone https://github.com/nrootconauto/MrChrootBSD.git + cd MrChrootBSD + wget https://download.freebsd.org/releases/amd64/14.1-RELEASE/base.txz + wget https://download.freebsd.org/releases/amd64/14.1-RELEASE/lib32.txz #Needed for gdb for some reason + mkdir chroot + cd chroot + tar xvf ../base.txz + tar xvf ../lib32.txz + cd .. + cmake . + make + cp /etc/resolv.conf chroot/etc + if screen -S rootsession -dm ./mrchroot chroot /bin/sh; then + echo "安装成功!" + else + echo "安装失败!" + fi } enterRoot() { - workpath="${installpath}/serv00-play/root/MrChrootBSD" - if [[ ! -e "$workpath/mrchroot" ]]; then - red "未安装mrchroot,请先行安装!" - return - fi - - SESSION_NAME="rootsession" - if screen -list | grep -q "\.$SESSION_NAME"; then - echo "进入root..." - screen -r "$SESSION_NAME" - else - echo "未发现root进程,尝试创建井进入root..." - cd $workpath - if screen -S $SESSION_NAME -dm ./mrchroot chroot /bin/sh; then - echo "创建成功!" - screen -r "$SESSION_NAME" - else - echo "创建失败!" - fi - - fi + workpath="${installpath}/serv00-play/root/MrChrootBSD" + if [[ ! -e "$workpath/mrchroot" ]]; then + red "未安装mrchroot,请先行安装!" + return + fi + + SESSION_NAME="rootsession" + if screen -list | grep -q "\.$SESSION_NAME"; then + echo "进入root..." + screen -r "$SESSION_NAME" + else + echo "未发现root进程,尝试创建井进入root..." + cd $workpath + if screen -S $SESSION_NAME -dm ./mrchroot chroot /bin/sh; then + echo "创建成功!" + screen -r "$SESSION_NAME" + else + echo "创建失败!" + fi + + fi } uninstallRoot() { - SESSION_NAME="rootsession" + SESSION_NAME="rootsession" - if [[ ! -e "${installpath}/serv00-play/root" ]]; then - echo "未安装root,无需卸载!" - return - fi + if [[ ! -e "${installpath}/serv00-play/root" ]]; then + echo "未安装root,无需卸载!" + return + fi - read -p "确定卸载root吗?[y/n] [n]:" input - input=${input:-n} + read -p "确定卸载root吗?[y/n] [n]:" input + input=${input:-n} - if [[ "$input" == "y" ]]; then + if [[ "$input" == "y" ]]; then - if screen -list | grep -q "\.${SESSION_NAME}"; then - screen -S "$SESSION_NAME" -X quit - fi + if screen -list | grep -q "\.${SESSION_NAME}"; then + screen -S "$SESSION_NAME" -X quit + fi - workpath="${installpath}/serv00-play/" - cd $workpath - rm -rf ./root - fi + workpath="${installpath}/serv00-play/" + cd $workpath + rm -rf ./root + fi - green "卸载完毕!" + green "卸载完毕!" } rootServ() { - while true; do - yellow "---------------------" - echo "一键root:" - echo "1. 安装root" - echo "2. 进入root" - echo "3. 卸载root" - echo "9. 返回主菜单" - echo "0. 退出脚本" - yellow "---------------------" - read -p "请选择:" input - - case $input in - 1) - installRoot - ;; - 2) - enterRoot - ;; - 3) - uninstallRoot - ;; - 9) - break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; - esac - done - showMenu + while true; do + yellow "---------------------" + echo "一键root:" + echo "1. 安装root" + echo "2. 进入root" + echo "3. 卸载root" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + + case $input in + 1) + installRoot + ;; + 2) + enterRoot + ;; + 3) + uninstallRoot + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu } showIPStatus() { - yellow "----------------------------------------------" - green " 主机名称 | IP | 状态" - yellow "----------------------------------------------" + yellow "----------------------------------------------" + green " 主机名称 | IP | 状态" + yellow "----------------------------------------------" - show_ip_status + show_ip_status } checkProcStatus() { - local procname=$1 - if checkProcAlive $procname; then - green "运行" - else - red "未运行" - fi + local procname=$1 + if checkProcAlive $procname; then + green "运行" + else + red "未运行" + fi } sunPanelServ() { - if ! checkInstalled "serv00-play"; then - return 1 - fi - while true; do - yellow "---------------------" - echo "sun-panel:" - echo "服务状态: $(checkProcStatus sun-panel)" - echo "1. 安装" - echo "2. 启动" - echo "3. 停止" - echo "4. 初始化密码" - echo "5. 导入serv00账号信息(频道会员尊享功能)" - echo "8. 卸载" - echo "9. 返回主菜单" - echo "0. 退出脚本" - yellow "---------------------" - read -p "请选择:" input - - case $input in - 1) - installSunPanel - ;; - 2) - startSunPanel - ;; - 3) - stopSunPanel - ;; - 4) - resetSunPanelPwd - ;; - 5) - import_accounts - ;; - 8) - uninstallSunPanel - ;; - 9) - break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; - esac - done - showMenu + if ! checkInstalled "serv00-play"; then + return 1 + fi + while true; do + yellow "---------------------" + echo "sun-panel:" + echo "服务状态: $(checkProcStatus sun-panel)" + echo "1. 安装" + echo "2. 启动" + echo "3. 停止" + echo "4. 初始化密码" + echo "5. 导入serv00账号信息(频道会员尊享功能)" + echo "8. 卸载" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + + case $input in + 1) + installSunPanel + ;; + 2) + startSunPanel + ;; + 3) + stopSunPanel + ;; + 4) + resetSunPanelPwd + ;; + 5) + import_accounts + ;; + 8) + uninstallSunPanel + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu } import_accounts() { - local workdir="${installpath}/serv00-play/sunpanel" - if ! vip_statement; then - return 1 - fi + local workdir="${installpath}/serv00-play/sunpanel" + if ! vip_statement; then + return 1 + fi - cd $workdir - read -p "请输入会员密码:" passwd - if ! checkDownload "importd_panel_accounts.sh" 0 "$passwd" 1; then - return 1 - fi + cd $workdir + read -p "请输入会员密码:" passwd + if ! checkDownload "importd_panel_accounts.sh" 0 "$passwd" 1; then + return 1 + fi - chmod +x ./importd_panel_accounts.sh + chmod +x ./importd_panel_accounts.sh - ./importd_panel_accounts.sh && rm -rf ./importd_panel_accounts.sh + ./importd_panel_accounts.sh && rm -rf ./importd_panel_accounts.sh - if [[ $? -ne 0 ]]; then - echo "导入失败!" - else - echo "导入成功!" - fi + if [[ $? -ne 0 ]]; then + echo "导入失败!" + else + echo "导入成功!" + fi } import_accounts() { - local workdir="${installpath}/serv00-play/sunpanel" - if ! vip_statement; then - return 1 - fi + local workdir="${installpath}/serv00-play/sunpanel" + if ! vip_statement; then + return 1 + fi - cd $workdir - read -s -p "请输入会员密码:" passwd - if ! checkDownload "importd_panel_accounts.sh" 0 "$passwd" 1; then - return 1 - fi + cd $workdir + read -s -p "请输入会员密码:" passwd + if ! checkDownload "importd_panel_accounts.sh" 0 "$passwd" 1; then + return 1 + fi - chmod +x ./importd_panel_accounts.sh + chmod +x ./importd_panel_accounts.sh - ./importd_panel_accounts.sh && rm -rf ./importd_panel_accounts.sh + ./importd_panel_accounts.sh && rm -rf ./importd_panel_accounts.sh - if [[ $? -ne 0 ]]; then - echo "导入失败!" - else - echo "导入成功!" - fi + if [[ $? -ne 0 ]]; then + echo "导入失败!" + else + echo "导入成功!" + fi } uninstallSunPanel() { - local workdir="${installpath}/serv00-play/sunpanel" - uninstallProc "$workdir" "sun-panel" + local workdir="${installpath}/serv00-play/sunpanel" + uninstallProc "$workdir" "sun-panel" } resetSunPanelPwd() { - local exepath="${installpath}/serv00-play/sunpanel/sun-panel" - if [[ ! -e $exepath ]]; then - echo "未安装,请先安装!" - return - fi - read -p "确定初始化密码? [y/n][n]:" input - input=${input:-n} - - if [[ "$input" == "y" ]]; then - local workdir="${installpath}/serv00-play/sunpanel" - cd $workdir - ./sun-panel -password-reset - fi + local exepath="${installpath}/serv00-play/sunpanel/sun-panel" + if [[ ! -e $exepath ]]; then + echo "未安装,请先安装!" + return + fi + read -p "确定初始化密码? [y/n][n]:" input + input=${input:-n} + + if [[ "$input" == "y" ]]; then + local workdir="${installpath}/serv00-play/sunpanel" + cd $workdir + ./sun-panel -password-reset + fi } stopSunPanel() { - stopProc "sun-panel" - if checkProcAlive "sun-panel"; then - echo "未能停止,请手动杀进程!" - fi + stopProc "sun-panel" + if checkProcAlive "sun-panel"; then + echo "未能停止,请手动杀进程!" + fi } installSunPanel() { - local workdir="${installpath}/serv00-play/sunpanel" - local exepath="${installpath}/serv00-play/sunpanel/sun-panel" - if [[ -e $exepath ]]; then - echo "已安装,请勿重复安装!" - return - fi - mkdir -p $workdir - cd $workdir - - if ! checkDownload "sun-panel"; then - return 1 - fi - if ! checkDownload "panelweb" 1; then - return 1 - fi - - if [[ ! -e "sun-panel" ]]; then - echo "下载文件解压失败!" - return 1 - fi - #初始化密码,并且生成相关目录文件 - ./sun-panel -password-reset - - if [[ ! -e "conf/conf.ini" ]]; then - echo "无配置文件生成!" - return 1 - fi - - loadPort - port="" - randomPort "tcp" "sun-panel" - if [ -n "$port" ]; then - sunPanelPort=$port - else - echo "未输入端口!" - return 1 - fi - cd conf - sed -i.bak -E "s/^http_port=[0-9]+$/http_port=${sunPanelPort}/" conf.ini - cd .. - - domain="" - webIp="" - if ! makeWWW panel $sunPanelPort; then - echo "绑定域名失败!" - return 1 - fi - # 自定义域名时申请证书的webip可以从2个ip中选择 - if [ $is_self_domain -eq 1 ]; then - if ! applyLE $domain $webIp; then - echo "申请证书失败!" - return 1 - fi - else # 没有自定义域名时,webip是内置固定的,就是web(x).serv00.com - if ! applyLE $domain; then - echo "申请证书失败!" - return 1 - fi - fi - green "安装完毕!" + local workdir="${installpath}/serv00-play/sunpanel" + local exepath="${installpath}/serv00-play/sunpanel/sun-panel" + if [[ -e $exepath ]]; then + echo "已安装,请勿重复安装!" + return + fi + mkdir -p $workdir + cd $workdir + + if ! checkDownload "sun-panel"; then + return 1 + fi + if ! checkDownload "panelweb" 1; then + return 1 + fi + + if [[ ! -e "sun-panel" ]]; then + echo "下载文件解压失败!" + return 1 + fi + #初始化密码,并且生成相关目录文件 + ./sun-panel -password-reset + + if [[ ! -e "conf/conf.ini" ]]; then + echo "无配置文件生成!" + return 1 + fi + + loadPort + port="" + randomPort "tcp" "sun-panel" + if [ -n "$port" ]; then + sunPanelPort=$port + else + echo "未输入端口!" + return 1 + fi + cd conf + sed -i.bak -E "s/^http_port=[0-9]+$/http_port=${sunPanelPort}/" conf.ini + cd .. + + domain="" + webIp="" + if ! makeWWW panel $sunPanelPort; then + echo "绑定域名失败!" + return 1 + fi + # 自定义域名时申请证书的webip可以从2个ip中选择 + if [ $is_self_domain -eq 1 ]; then + if ! applyLE $domain $webIp; then + echo "申请证书失败!" + return 1 + fi + else # 没有自定义域名时,webip是内置固定的,就是web(x).serv00.com + if ! applyLE $domain; then + echo "申请证书失败!" + return 1 + fi + fi + green "安装完毕!" } makeWWW() { - local proc=$1 - local port=$2 - local www_type=${3:-"proxy"} - local input=${4:-""} - domain=${5:-"$domain"} - - echo "正在处理服务IP,请等待..." - is_self_domain=0 - webIp=$(get_webip) - default_webip=$(get_default_webip) - if [[ -z "$webIp" ]]; then - webIp=$default_webip - fi - green "可用webip是: $webIp, 默认webip是: $default_webip" - if [[ -z "$domain" ]]; then - if [[ -z "$input" ]]; then - read -p "是否使用自定义域名? [y/n] [n]:" input - input=${input:-n} - fi - if [[ "$input" == "y" ]]; then - is_self_domain=1 - read -p "请输入域名(确保此前域名已指向webip):" domain - else - if [[ -z ${proc:""} ]]; then - read -p "请输入默认域名的二级域名的前缀(如二级域名 sub.main.com, 则填sub):" proc - fi - domain=$(getUserDoMain "$proc") - fi - else - is_self_domain=1 - fi - - if [[ -z "$domain" ]]; then - red "输入无效域名!" - return 1 - fi - - domain=${domain,,} - echo "正在绑定域名,请等待..." - if [[ "$www_type" == "proxy" ]]; then - resp=$(devil www add $domain proxy localhost $port) - else - resp=$(devil www add $domain php) - fi - #echo "resp:$resp" - if [[ ! "$resp" =~ .*succesfully.*$ && ! "$resp" =~ .*Ok.*$ ]]; then - if [[ ! "$resp" =~ "This domain already exists" ]]; then - red "申请域名$domain 失败!" - return 1 - fi - fi - - # 自定义域名的特殊处理 - # if [[ $is_self_domain -eq 1 ]]; then - # host="$(hostname | cut -d '.' -f 1)" - # sno=${host/s/web} - # default_webIp=$(devil vhost list public | grep "$sno" | awk '{print $1}') - # rid=$(devil dns list "$domain" | grep "$default_webIp" | awk '{print $1}') - # resp=$(echo "y" | devil dns del "$domain" $rid) - # #echo "resp:$resp" - # else - # webIp=$(get_default_webip) - # fi - # 保存信息 - if [[ "$www_type" == "proxy" ]]; then - cat >config.json <config.json < $configfile <>"$profile" - source $profile - fi - domain="" - webIp="" - if ! makeWWW ssh $websshPort; then - echo "绑定域名失败!" - return 1 - fi - if ! applyLE $domain $webIp; then - echo "申请证书失败!" - return 1 - fi - echo "安装完成!" + local workdir="${installpath}/serv00-play/webssh" + if [[ ! -e "$workdir" ]]; then + mkdir -p $workdir + fi + cd $workdir + configfile="./config.json" + local is_installed=0 + if [ -e "$configfile" ]; then + is_installed=1 + echo "已安装,配置如下:" + cat $configfile + + read -p "是否修改配置? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" == "n" ]]; then + return + fi + fi + + port="" + loadPort + randomPort tcp "webssh" + if [ -n "$port" ]; then + websshPort=$port + else + echo "未输入端口!" + return 1 + fi + + # cat > $configfile <>"$profile" + source $profile + fi + domain="" + webIp="" + if ! makeWWW ssh $websshPort; then + echo "绑定域名失败!" + return 1 + fi + if ! applyLE $domain $webIp; then + echo "申请证书失败!" + return 1 + fi + echo "安装完成!" } stopWebSSH() { - stopProc "wssh" - sleep 2 - if ! checkProcAlive "wssh"; then - echo "wssh已停止!" - else - echo "未能停止,请手动杀进程!" - fi + stopProc "wssh" + sleep 2 + if ! checkProcAlive "wssh"; then + echo "wssh已停止!" + else + echo "未能停止,请手动杀进程!" + fi } startWebSSH() { - local workdir="${installpath}/serv00-play/webssh" - local configfile="$workdir/config.json" - if [ ! -e "$configfile" ]; then - echo "未安装,请先安装!" - return - fi - cd $workdir - read -p "是否需要日志($workdir/running.log)? [y/n] [n]:" input - input=${input:-n} - args="" - if [[ "$input" == "y" ]]; then - args=" > running.log 2>&1 " - else - args=" > /dev/null 2>&1 " - fi - port=$(jq -r ".port" $configfile) - if checkProcAlive "wssh"; then - stopProc "wssh" - fi - echo "正在启动中..." - cmd="nohup ./wssh --port=$port --wpintvl=30 --fbidhttp=False --xheaders=False --encoding='utf-8' --delay=10 $args &" - eval "$cmd" - sleep 2 - if checkProcAlive wssh; then - green "启动成功!" - else - echo "启动失败!" - fi + local workdir="${installpath}/serv00-play/webssh" + local configfile="$workdir/config.json" + if [ ! -e "$configfile" ]; then + echo "未安装,请先安装!" + return + fi + cd $workdir + read -p "是否需要日志($workdir/running.log)? [y/n] [n]:" input + input=${input:-n} + args="" + if [[ "$input" == "y" ]]; then + args=" > running.log 2>&1 " + else + args=" > /dev/null 2>&1 " + fi + port=$(jq -r ".port" $configfile) + if checkProcAlive "wssh"; then + stopProc "wssh" + fi + echo "正在启动中..." + cmd="nohup ./wssh --port=$port --wpintvl=30 --fbidhttp=False --xheaders=False --encoding='utf-8' --delay=10 $args &" + eval "$cmd" + sleep 2 + if checkProcAlive wssh; then + green "启动成功!" + else + echo "启动失败!" + fi } nonServ() { - cat <config.json <config.json < /dev/null 2>&1 #domains-support" >>mycron - crontab mycron >/dev/null 2>&1 - rm mycron + local workdir="${installpath}/serv00-play/domains-support" + cd $workdir + if [[ ! -e "config.json" ]]; then + red "未配置,请先配置!" + return 1 + fi + if checkCronName domains-support; then + red "服务已开启,请勿重复开启!" + return 1 + fi + api_token=$(jq -r ".API_TOKEN" config.json) + url=$(jq -r ".URL" config.json) + if [[ -z "$api_token" || -z "$url" ]]; then + red "配置文件错误,请检查!" + return 1 + fi + echo "0 9 * * * curl -H \"Authorization: Bearer $api_token\" https://$url/api/check > /dev/null 2>&1 #domains-support" >>mycron + crontab mycron >/dev/null 2>&1 + rm mycron } stopDs() { - local workdir="${installpath}/serv00-play/domains-support" - cd $workdir - if [[ ! -e "config.json" ]]; then - red "未配置,请先配置!" - return 1 - fi - if checkCronName domains-support; then - echo "正在停止服务..." - crontab -l | grep -v "domains-support" >mycron - crontab mycron >/dev/null 2>&1 - rm mycron - green "服务已停止!" - else - red "服务未开启!" - fi + local workdir="${installpath}/serv00-play/domains-support" + cd $workdir + if [[ ! -e "config.json" ]]; then + red "未配置,请先配置!" + return 1 + fi + if checkCronName domains-support; then + echo "正在停止服务..." + crontab -l | grep -v "domains-support" >mycron + crontab mycron >/dev/null 2>&1 + rm mycron + green "服务已停止!" + else + red "服务未开启!" + fi } addDomain() { - local workdir="${installpath}/serv00-play/domains-support" - if [[ ! -e $workdir ]]; then - mkdir -p $workdir - fi - cd $workdir - domain="" - webIp="" - if ! makeWWW "" "" "php" "y"; then - echo "绑定域名失败!" - return 1 - fi - #echo "after makeWWW, domain=$domain,webIp=$webIp" - if ! applyLE "$domain" "$webIp" "n"; then - echo "申请证书失败!" - return 1 - fi - cd $workdir - target="$installpath/domains/$domain/public_html" - if [[ ! -e "$target" ]]; then - red "目标目录不存在!" - fi - - while true; do - echo "建站样式选择:" - echo "1. 樱花博客" - echo "2. 人力资源管理系统" - echo "3. 德一教育系统后台" - echo "4. 自定义网站" - echo "0. 返回上一级" - - read -p "你的选择: " choice - - case $choice in - 1) - echo "你选择了樱花博客" - break - ;; - 2) - echo "你选择了人力资源管理系统" - break - ;; - 3) - echo "你选择了德一教育系统后台" - break - ;; - 4) - break - ;; - 0) - echo "返回上一级" - return - ;; - *) - echo "无效选择,请重新输入" - ;; - esac - done - - if [[ "$choice" == "1" ]]; then - cp websites/sakura.html $target/index.html - if [ $? -ne 0 ]; then - red "安装失败!" - return 1 - fi - read -p "输入你的名字([xx的博客]里的xx):" name - name=${name:-"樱花"} - sed -i.bak "s|xx|$name|g" $target/index.html - fi - if [[ "$choice" == "2" ]]; then - cp websites/hr.html $target/index.html - if [ $? -ne 0 ]; then - red "安装失败!" - return 1 - fi - fi - if [[ "$choice" == "3" ]]; then - cp websites/deyiedu.html $target/index.html - if [ $? -ne 0 ]; then - red "安装失败!" - return 1 - fi - fi - if [[ "$choice" == "4" ]]; then - read -p "输入网址html文件路径:" input - if [[ -z "$input" ]]; then - red "输入不能为空!" - return 1 - fi - if [[ ! -e "$input" ]]; then - red "文件不存在!" - return 1 - fi - cp "$input" $target/index.html - if [ $? -ne 0 ]; then - red "安装失败!" - return 1 - fi - fi - - add_domain $domain $webIp - if [[ -e "config.json" ]]; then - local api_token=$(jq -r ".API_TOKEN" config.json) - local url=$(jq -r ".URL" config.json) - if [[ -z "$api_token" || -z "$url" ]]; then - red "配置文件错误,请检查!" - return 1 - fi - read -p "是否录入域名信息到数据库? [y/n] [n]:" input - input=${input:-n} - if [[ "$input" == "y" ]]; then - read -p "请输入注册商名称:" registrar - registrar=${registrar:-"注册商"} - - read -p "请输入注册商链接(可选):" registrar_link - registrar_link=${registrar_link:-""} - - read -p "请输入注册日期(格式: YYYY-MM-DD):" registrar_date - registrar_date=${registrar_date:-$(date +%Y-%m-%d)} - - read -p "请输入到期日期(格式: YYYY-MM-DD):" expiry_date - expiry_date=${expiry_date:-$(date -v+1y +%Y-%m-%d)} - - local host=$(hostname) - local username=$(whoami) - - read -p "请输入备注(可选):" memo - memo=${memo:-"$host-$username"} - fi - curl -X POST "https://$url/api/addrec?token=$api_token" \ - -H "Content-Type: application/json" \ - -d '{ + local workdir="${installpath}/serv00-play/domains-support" + if [[ ! -e $workdir ]]; then + mkdir -p $workdir + fi + cd $workdir + domain="" + webIp="" + if ! makeWWW "" "" "php" "y"; then + echo "绑定域名失败!" + return 1 + fi + #echo "after makeWWW, domain=$domain,webIp=$webIp" + if ! applyLE "$domain" "$webIp" "n"; then + echo "申请证书失败!" + return 1 + fi + cd $workdir + target="$installpath/domains/$domain/public_html" + if [[ ! -e "$target" ]]; then + red "目标目录不存在!" + fi + + while true; do + echo "建站样式选择:" + echo "1. 樱花博客" + echo "2. 人力资源管理系统" + echo "3. 德一教育系统后台" + echo "4. 李明的英文简历" + echo "5. 自定义网站" + echo "0. 返回上一级" + + read -p "你的选择: " choice + + case $choice in + 1) + echo "你选择了樱花博客" + break + ;; + 2) + echo "你选择了人力资源管理系统" + break + ;; + 3) + echo "你选择了德一教育系统后台" + break + ;; + 4) + echo "你选择了李明的英文简历" + break + ;; + 5) + break + ;; + 0) + echo "返回上一级" + return + ;; + *) + echo "无效选择,请重新输入" + ;; + esac + done + + if [[ "$choice" == "1" ]]; then + cp websites/sakura.html $target/index.html + if [ $? -ne 0 ]; then + red "安装失败!" + return 1 + fi + read -p "输入你的名字([xx的博客]里的xx):" name + name=${name:-"樱花"} + sed -i.bak "s|xx|$name|g" $target/index.html + fi + if [[ "$choice" == "2" ]]; then + cp websites/hr.html $target/index.html + if [ $? -ne 0 ]; then + red "安装失败!" + return 1 + fi + fi + if [[ "$choice" == "3" ]]; then + cp websites/deyiedu.html $target/index.html + if [ $? -ne 0 ]; then + red "安装失败!" + return 1 + fi + fi + if [[ "$choice" == "4" ]]; then + cp websites/resume.html $target/index.html + if [ $? -ne 0 ]; then + red "安装失败!" + return 1 + fi + fi + if [[ "$choice" == "5" ]]; then + read -p "输入网址html文件路径:" input + if [[ -z "$input" ]]; then + red "输入不能为空!" + return 1 + fi + if [[ ! -e "$input" ]]; then + red "文件不存在!" + return 1 + fi + cp "$input" $target/index.html + if [ $? -ne 0 ]; then + red "安装失败!" + return 1 + fi + fi + + add_domain $domain $webIp + if [[ -e "config.json" ]]; then + local api_token=$(jq -r ".API_TOKEN" config.json) + local url=$(jq -r ".URL" config.json) + if [[ -z "$api_token" || -z "$url" ]]; then + red "配置文件错误,请检查!" + return 1 + fi + read -p "是否录入域名信息到数据库? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" == "y" ]]; then + read -p "请输入注册商名称:" registrar + registrar=${registrar:-"注册商"} + + read -p "请输入注册商链接(可选):" registrar_link + registrar_link=${registrar_link:-""} + + read -p "请输入注册日期(格式: YYYY-MM-DD):" registrar_date + registrar_date=${registrar_date:-$(date +%Y-%m-%d)} + + read -p "请输入到期日期(格式: YYYY-MM-DD):" expiry_date + expiry_date=${expiry_date:-$(date -v+1y +%Y-%m-%d)} + + local host=$(hostname) + local username=$(whoami) + + read -p "请输入备注(可选):" memo + memo=${memo:-"$host-$username"} + fi + curl -X POST "https://$url/api/addrec?token=$api_token" \ + -H "Content-Type: application/json" \ + -d '{ "domain": "'"$domain"'", "registrar": "'"$registrar"'", "registrar_date": "'"$registrar_date"'", @@ -3695,408 +3711,408 @@ addDomain() { "tgsend": "1", "memo": "'"$memo"'" }' >/dev/null 2>&1 - if [ $? -ne 0 ]; then - red "域名信息录入失败!" - return 1 - fi - fi - green "域名的网站安装成功!" + if [ $? -ne 0 ]; then + red "域名信息录入失败!" + return 1 + fi + fi + green "域名的网站安装成功!" } delDomain() { - local workdir="${installpath}/serv00-play/domains-support" - if [[ ! -e $workdir ]]; then - red "未安装,请先安装!" - return 1 - fi - cd $workdir - print_domains - read -p "请输入要删除的域名(-1删除所有,0返回上级菜单):" domain - if [[ -z "$domain" ]]; then - red "输入不能为空!" - return 1 - fi - if [[ "$domain" == "-1" ]]; then - read -p "是否删除所有域名? [y/n] [n]:" input - input=${input:-n} - if [[ "$input" != "y" ]]; then - return 1 - fi - delete_all_domains - rm -rf "${installpath}/serv00-play/domains-support" - green "删除成功!" - return 0 - fi - if [[ "$domain" == "0" ]]; then - return 0 - fi - delete_domain "$domain" - green "域名删除成功!" + local workdir="${installpath}/serv00-play/domains-support" + if [[ ! -e $workdir ]]; then + red "未安装,请先安装!" + return 1 + fi + cd $workdir + print_domains + read -p "请输入要删除的域名(-1删除所有,0返回上级菜单):" domain + if [[ -z "$domain" ]]; then + red "输入不能为空!" + return 1 + fi + if [[ "$domain" == "-1" ]]; then + read -p "是否删除所有域名? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" != "y" ]]; then + return 1 + fi + delete_all_domains + rm -rf "${installpath}/serv00-play/domains-support" + green "删除成功!" + return 0 + fi + if [[ "$domain" == "0" ]]; then + return 0 + fi + delete_domain "$domain" + green "域名删除成功!" } keepAliveServ() { - if ! checkInstalled "serv00-play"; then - return 1 - fi - while true; do - yellow "---------------------" - echo "keepAlive:" - echo "1. 安装" - echo "2. 更新(须先按1更新serv00-play)" - echo "3. 更新保活时间间隔" - echo "4. 修改token" - echo "8. 卸载" - echo "9. 返回主菜单" - echo "0. 退出脚本" - yellow "---------------------" - read -p "请选择:" input - - case $input in - 1) - installkeepAlive - ;; - 2) - updatekeepAlive - ;; - 3) - setKeepAliveInterval - ;; - 4) - changeKeepAliveToken - ;; - 8) - uninstallkeepAlive - ;; - 9) - break - ;; - 0) - exit 0 - ;; - *) - echo "无效选项,请重试" - ;; - esac - done - - showMenu + if ! checkInstalled "serv00-play"; then + return 1 + fi + while true; do + yellow "---------------------" + echo "keepAlive:" + echo "1. 安装" + echo "2. 更新(须先按1更新serv00-play)" + echo "3. 更新保活时间间隔" + echo "4. 修改token" + echo "8. 卸载" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + + case $input in + 1) + installkeepAlive + ;; + 2) + updatekeepAlive + ;; + 3) + setKeepAliveInterval + ;; + 4) + changeKeepAliveToken + ;; + 8) + uninstallkeepAlive + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + + showMenu } installkeepAlive() { - local domain=$(getUserDoMain) - domain="${domain,,}" - local domainPath="${installpath}/domains/$domain/public_nodejs" - local workdir="${installpath}/serv00-play/keepalive" - if [[ -e "$domainPath/config.json" ]]; then - red "已安装,请勿重复安装!" - return 1 - fi - cd $workdir - - read -p "需要使用默认域名[$domain]进行安装,若继续安装将会删除默认域名,确认是否继续? [y/n] [y]:" input - input=${input:-y} - if [[ "$input" != "y" ]]; then - echo "取消安装" - return 1 - fi - delDefaultDomain - echo "正在安装..." - if ! createDefaultDomain; then - return 1 - fi - mv "$domainPath/public" "$domainPath/static" - cp ./nezha.jpg $domainPath/static - cp ./config.json $domainPath - cp ./app.js $domainPath - - cd $domainPath - if ! npm22 install express body-parser child_process fs; then - red "安装依赖失败" - return 1 - fi - - read -p "是否需要自定义token? [y/n] [y]:" input - input=${input:-y} - if [[ "$input" == "y" ]]; then - uuid="" - read -p "请输入token:" uuid - if [[ -z "$uuid" ]]; then - red "token不能为空!" - return 1 - fi - else - uuid=$(uuidgen) - fi - green "你的token是:$uuid" - sed -i '' "s/uuid/$uuid/g" config.json - read -p "输入保活时间间隔(单位:分钟)[默认:2分钟]:" interval - interval=${interval:-2} - sed -i '' "s/TM/$interval/g" config.json - - green "安装成功" + local domain=$(getUserDoMain) + domain="${domain,,}" + local domainPath="${installpath}/domains/$domain/public_nodejs" + local workdir="${installpath}/serv00-play/keepalive" + if [[ -e "$domainPath/config.json" ]]; then + red "已安装,请勿重复安装!" + return 1 + fi + cd $workdir + + read -p "需要使用默认域名[$domain]进行安装,若继续安装将会删除默认域名,确认是否继续? [y/n] [y]:" input + input=${input:-y} + if [[ "$input" != "y" ]]; then + echo "取消安装" + return 1 + fi + delDefaultDomain + echo "正在安装..." + if ! createDefaultDomain; then + return 1 + fi + mv "$domainPath/public" "$domainPath/static" + cp ./nezha.jpg $domainPath/static + cp ./config.json $domainPath + cp ./app.js $domainPath + + cd $domainPath + if ! npm22 install express body-parser child_process fs; then + red "安装依赖失败" + return 1 + fi + + read -p "是否需要自定义token? [y/n] [y]:" input + input=${input:-y} + if [[ "$input" == "y" ]]; then + uuid="" + read -p "请输入token:" uuid + if [[ -z "$uuid" ]]; then + red "token不能为空!" + return 1 + fi + else + uuid=$(uuidgen) + fi + green "你的token是:$uuid" + sed -i '' "s/uuid/$uuid/g" config.json + read -p "输入保活时间间隔(单位:分钟)[默认:2分钟]:" interval + interval=${interval:-2} + sed -i '' "s/TM/$interval/g" config.json + + green "安装成功" } uninstallkeepAlive() { - local input=$1 - local domain=$(getUserDoMain) - domain="${domain,,}" - local domainPath="${installpath}/domains/$domain/public_nodejs" - if [ -z "$input" ]; then - read -p "是否卸载? [y/n] [n]:" input - input=${input:-n} - if [[ "$input" != "y" ]]; then - return 1 - fi - fi - if ! delDefaultDomain; then - return 1 - fi - green "卸载成功" + local input=$1 + local domain=$(getUserDoMain) + domain="${domain,,}" + local domainPath="${installpath}/domains/$domain/public_nodejs" + if [ -z "$input" ]; then + read -p "是否卸载? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" != "y" ]]; then + return 1 + fi + fi + if ! delDefaultDomain; then + return 1 + fi + green "卸载成功" } createDefaultDomain() { - local domain=$(getUserDoMain) - domain="${domain,,}" - rt=$(devil www add $domain nodejs /usr/local/bin/node22 production) - if [[ ! "$rt" =~ .*succesfully*$ ]]; then - red "创建默认域名失败" - return 1 - fi + local domain=$(getUserDoMain) + domain="${domain,,}" + rt=$(devil www add $domain nodejs /usr/local/bin/node22 production) + if [[ ! "$rt" =~ .*succesfully*$ ]]; then + red "创建默认域名失败" + return 1 + fi } delDefaultDomain() { - local domain=$(getUserDoMain) - domain="${domain,,}" - rt=$(devil www del $domain --remove) - if [[ ! "$rt" =~ .*deleted*$ ]]; then - red "删除默认域名失败" - return 1 - fi + local domain=$(getUserDoMain) + domain="${domain,,}" + rt=$(devil www del $domain --remove) + if [[ ! "$rt" =~ .*deleted*$ ]]; then + red "删除默认域名失败" + return 1 + fi } updatekeepAlive() { - local domain=$(getUserDoMain) - domain="${domain,,}" - domainPath="${installpath}/domains/$domain/public_nodejs" - workDir="$installpath/serv00-play/keepalive" - if [[ ! -e "$domainPath/config.json" ]]; then - red "未安装,请先安装!" - return 1 - fi - if [[ ! -e "$workDir" ]]; then - mkdir -p $workDir - fi - cd $workDir - - cp ./app.js $domainPath - - cp $workDir/app.js $domainPath - devil www restart $domain - green "更新成功" + local domain=$(getUserDoMain) + domain="${domain,,}" + domainPath="${installpath}/domains/$domain/public_nodejs" + workDir="$installpath/serv00-play/keepalive" + if [[ ! -e "$domainPath/config.json" ]]; then + red "未安装,请先安装!" + return 1 + fi + if [[ ! -e "$workDir" ]]; then + mkdir -p $workDir + fi + cd $workDir + + cp ./app.js $domainPath + + cp $workDir/app.js $domainPath + devil www restart $domain + green "更新成功" } changeKeepAliveToken() { - local domain=$(getUserDoMain) - domain="${domain,,}" - domainPath="${installpath}/domains/$domain/public_nodejs" - if [[ ! -e "$domainPath/config.json" ]]; then - red "未安装,请先安装!" - return 1 - fi - - cur_token=$(jq -r ".token" $domainPath/config.json) - echo "当前token为: $cur_token" - token="" - read -p "输入新的token:" token - if [[ -z "$token" ]]; then - red "token不能为空!" - return 1 - fi - upInsertFd $domainPath/config.json token $token - if [ $? -ne 0 ]; then - red "更新失败!" - return 1 - fi - green "更新成功" + local domain=$(getUserDoMain) + domain="${domain,,}" + domainPath="${installpath}/domains/$domain/public_nodejs" + if [[ ! -e "$domainPath/config.json" ]]; then + red "未安装,请先安装!" + return 1 + fi + + cur_token=$(jq -r ".token" $domainPath/config.json) + echo "当前token为: $cur_token" + token="" + read -p "输入新的token:" token + if [[ -z "$token" ]]; then + red "token不能为空!" + return 1 + fi + upInsertFd $domainPath/config.json token $token + if [ $? -ne 0 ]; then + red "更新失败!" + return 1 + fi + green "更新成功" } setKeepAliveInterval() { - local domain=$(getUserDoMain) - domain="${domain,,}" - domainPath="${installpath}/domains/$domain/public_nodejs" - if [[ ! -e "$domainPath/config.json" ]]; then - red "未安装,请先安装!" - return 1 - fi - - cur_interval=$(jq -r ".interval" $domainPath/config.json) - echo "当前保活时间间隔为: $cur_interval 分钟" - read -p "输入保活时间间隔(单位:分钟)[默认:2分钟]:" interval - interval=${interval:-2} - upInsertFd $domainPath/config.json interval $interval - if [ $? -ne 0 ]; then - red "更新失败!" - return 1 - fi - green "更新成功" + local domain=$(getUserDoMain) + domain="${domain,,}" + domainPath="${installpath}/domains/$domain/public_nodejs" + if [[ ! -e "$domainPath/config.json" ]]; then + red "未安装,请先安装!" + return 1 + fi + + cur_interval=$(jq -r ".interval" $domainPath/config.json) + echo "当前保活时间间隔为: $cur_interval 分钟" + read -p "输入保活时间间隔(单位:分钟)[默认:2分钟]:" interval + interval=${interval:-2} + upInsertFd $domainPath/config.json interval $interval + if [ $? -ne 0 ]; then + red "更新失败!" + return 1 + fi + green "更新成功" } linkAliveStatment() { - cat </dev/null) - if [ $? -ne 0 ]; then - echo null - else - echo $ver - fi + ver=$(git describe --tags --abbrev=0 2>/dev/null) + if [ $? -ne 0 ]; then + echo null + else + echo $ver + fi } showMenu() { - art_wrod=$(figlet "serv00-play") - echo "<------------------------------------------------------------------>" - echo -e "${CYAN}${art_wrod}${RESET}" - echo -e "${GREEN} 饭奇骏频道:https://www.youtube.com/@frankiejun8965 ${RESET}" - echo -e "${GREEN} TG交流群:https://t.me/fanyousuiqun ${RESET}" - echo -e "${GREEN} 当前版本号:$(getCurrentVer) 最新版本号:$(getLatestVer) ${RESET}" - echo "<------------------------------------------------------------------>" - echo "请选择一个选项:" - - options=("安装/更新serv00-play项目" "sun-panel" "webssh" "阅后即焚" "linkalive" "设置保活的项目" "配置sing-box" - "运行sing-box" "停止sing-box" "显示sing-box节点信息" "快照恢复" "系统初始化" "前置工作及设置中国时区" "哪吒探针管理" "哪吒面板管理" "设置彩色开机字样" "显示本机IP" - "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "KeepAlive" "Domains-Support" "微信消息推送界面管理" "卸载") - - select opt in "${options[@]}"; do - case $REPLY in - 1) - install - ;; - 2) - sunPanelServ - ;; - 3) - websshServ - ;; - 4) - burnAfterReadingServ - ;; - 5) - linkAliveServ - ;; - 6) - setConfig - ;; - 7) - configSingBox - ;; - 8) - startSingBox - ;; - 9) - stopSingBox - ;; - 10) - showSingBoxInfo - ;; - 11) - ImageRecovery - ;; - 12) - InitServer - ;; - 13) - setCnTimeZone - ;; - 14) - manageNeZhaAgent - ;; - 15) - manageNeZhaBoard - ;; - 16) - setColorWord - ;; - 17) - showIP - ;; - 18) - mtprotoServ - ;; - 19) - alistServ - ;; - 20) - portServ - ;; - 21) - domainSSLServ - ;; - 22) - rootServ - ;; - 23) - showIPStatus - ;; - 24) - changeHy2IP - ;; - 25) - keepAliveServ - ;; - 26) - DSServ - ;; + art_wrod=$(figlet "serv00-play") + echo "<------------------------------------------------------------------>" + echo -e "${CYAN}${art_wrod}${RESET}" + echo -e "${GREEN} 饭奇骏频道:https://www.youtube.com/@frankiejun8965 ${RESET}" + echo -e "${GREEN} TG交流群:https://t.me/fanyousuiqun ${RESET}" + echo -e "${GREEN} 当前版本号:$(getCurrentVer) 最新版本号:$(getLatestVer) ${RESET}" + echo "<------------------------------------------------------------------>" + echo "请选择一个选项:" + + options=("安装/更新serv00-play项目" "sun-panel" "webssh" "阅后即焚" "linkalive" "设置保活的项目" "配置sing-box" + "运行sing-box" "停止sing-box" "显示sing-box节点信息" "快照恢复" "系统初始化" "前置工作及设置中国时区" "哪吒探针管理" "哪吒面板管理" "设置彩色开机字样" "显示本机IP" + "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "KeepAlive" "Domains-Support" "微信消息推送界面管理" "卸载") + + select opt in "${options[@]}"; do + case $REPLY in + 1) + install + ;; + 2) + sunPanelServ + ;; + 3) + websshServ + ;; + 4) + burnAfterReadingServ + ;; + 5) + linkAliveServ + ;; + 6) + setConfig + ;; + 7) + configSingBox + ;; + 8) + startSingBox + ;; + 9) + stopSingBox + ;; + 10) + showSingBoxInfo + ;; + 11) + ImageRecovery + ;; + 12) + InitServer + ;; + 13) + setCnTimeZone + ;; + 14) + manageNeZhaAgent + ;; + 15) + manageNeZhaBoard + ;; + 16) + setColorWord + ;; + 17) + showIP + ;; + 18) + mtprotoServ + ;; + 19) + alistServ + ;; + 20) + portServ + ;; + 21) + domainSSLServ + ;; + 22) + rootServ + ;; + 23) + showIPStatus + ;; + 24) + changeHy2IP + ;; + 25) + keepAliveServ + ;; + 26) + DSServ + ;; 27) manageWxPushSkin ;; - 28) - uninstall - ;; - 0) - echo "退出" - exit 0 - ;; - *) - echo "无效的选项 " - ;; - esac + 28) + uninstall + ;; + 0) + echo "退出" + exit 0 + ;; + *) + echo "无效的选项 " + ;; + esac - done + done } if [ "$1" == "--uninstall" ]; then - echo "执行卸载操作" - uninstall "y" - exit 0 + echo "执行卸载操作" + uninstall "y" + exit 0 elif [ "$1" == "--install" ]; then - echo "执行更新操作" - install "y" - exit 0 + echo "执行更新操作" + install "y" + exit 0 else - showMenu + showMenu fi From 33d840e1dfd8f394314ba744d10b88ecb374e25a Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sun, 30 Nov 2025 23:57:57 +0800 Subject: [PATCH 163/210] =?UTF-8?q?=E6=9B=B4=E6=96=B0wxpushSkin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 53 ++- utils.sh | 1216 ++++++++++++++++++++++++++++-------------------------- 2 files changed, 676 insertions(+), 593 deletions(-) diff --git a/start.sh b/start.sh index b66a35ea..292d6f6f 100755 --- a/start.sh +++ b/start.sh @@ -2831,7 +2831,8 @@ manageWxPushSkin() { while true; do yellow "---------------------" echo "1. 安装" - echo "2. 卸载" + echo "2. 更新" + echo "3. 卸载" echo "9. 返回主菜单" echo "0. 退出脚本" yellow "---------------------" @@ -2842,6 +2843,9 @@ manageWxPushSkin() { installWxPushSkin ;; 2) + updateWxPushSkin + ;; + 3) uninstallWxPushSkin ;; 9) @@ -2895,17 +2899,23 @@ installWxPushSkin() { domainPath="$installpath/domains/$domain/public_html" cd $domainPath - echo "正在下载并安装 wxpushskin.html ..." - if ! checkDownload "wxpushskin.html"; then + echo "正在下载并安装 wxpushskin ..." + if ! download_allcode_from_github_release "frankiejun" "wxpushSkin"; then return fi - if [ -e "wxpushskin.html" ]; then - mv wxpushskin.html index.html + if [ ! -e "tmp" ]; then + echo "下载失败!" + return 1 + fi + + if [ -e "./tmp/index.html" ]; then + mv ./tmp/index.html index.html echo "已安装到 $domainPath/index.html" else echo "下载失败!" return 1 fi + rm -rf ./tmp cd $workdir add_domain $domain $webIp @@ -2913,6 +2923,35 @@ installWxPushSkin() { echo "安装完成!" } +updateWxPushSkin() { + local workdir="${installpath}/serv00-play/wxpushskin" + + if [[ ! -e "$workdir" ]]; then + mkdir -p $workdir + fi + cd $workdir + local domain=$(get_one_domain) + domainPath="$installpath/domains/$domain/public_html" + cd $domainPath + echo "正在下载并安装 wxpushskin ..." + if ! download_allcode_from_github_release "frankiejun" "wxpushSkin"; then + return + fi + if [ ! -e "tmp" ]; then + echo "下载失败!" + return 1 + fi + + if [ -e "./tmp/index.html" ]; then + mv ./tmp/index.html index.html + echo "已安装到 $domainPath/index.html" + else + echo "下载失败!" + return 1 + fi + rm -rf ./tmp +} + uninstallWxPushSkin() { local workdir="${installpath}/serv00-play/wxpushskin" @@ -3043,7 +3082,7 @@ uninstallBurnReading() { if ! check_domains_empty; then echo "目前已安装服务的域名有:" print_domains - read -p "是否删除所有域名服务? [y/n] [n]:" input + read -p "是否删除所�����名服务? [y/n] [n]:" input input=${input:-n} if [[ "$input" == "y" ]]; then delete_all_domains @@ -3067,7 +3106,7 @@ websshServ() { while true; do yellow "---------------------" echo "webssh:" - echo "服务状态: $(checkProcStatus wssh)" + echo "服务状��: $(checkProcStatus wssh)" echo "1. 安装/修改配置" echo "2. 启动" echo "3. 停止" diff --git a/utils.sh b/utils.sh index 8228c4c3..cdb453ad 100644 --- a/utils.sh +++ b/utils.sh @@ -9,370 +9,370 @@ CYAN='\033[0;96m' WHITE='\033[0;37m' RESET='\033[0m' yellow() { - echo -e "${YELLOW}$1${RESET}" + echo -e "${YELLOW}$1${RESET}" } green() { - echo -e "${GREEN}$1${RESET}" + echo -e "${GREEN}$1${RESET}" } red() { - echo -e "${RED}$1${RESET}" + echo -e "${RED}$1${RESET}" } installpath="$HOME" baseurl="https://ss.fkj.pp.ua" linkBaseurl="https://la.fkj.pp.ua" checknezhaAgentAlive() { - if ps aux | grep nezha-agent | grep -v "grep" >/dev/null; then - return 0 - else - return 1 - fi + if ps aux | grep nezha-agent | grep -v "grep" >/dev/null; then + return 0 + else + return 1 + fi } checkvmessAlive() { - local c=0 - if ps aux | grep serv00sb | grep -v "grep" >/dev/null; then - ((c++)) - fi + local c=0 + if ps aux | grep serv00sb | grep -v "grep" >/dev/null; then + ((c++)) + fi - if ps aux | grep cloudflared | grep -v "grep" >/dev/null; then - ((c++)) - fi + if ps aux | grep cloudflared | grep -v "grep" >/dev/null; then + ((c++)) + fi - if [ $c -eq 2 ]; then - return 0 - fi + if [ $c -eq 2 ]; then + return 0 + fi - return 1 # 有一个或多个进程不在运行 + return 1 # 有一个或多个进程不在运行 } #返回0表示成功, 1表示失败 #在if条件中,0会执行,1不会执行 checkProcAlive() { - local procname=$1 - if ps aux | grep "$procname" | grep -v "grep" >/dev/null; then - return 0 - else - return 1 - fi + local procname=$1 + if ps aux | grep "$procname" | grep -v "grep" >/dev/null; then + return 0 + else + return 1 + fi } stopProc() { - local procname=$1 - r=$(ps aux | grep "$procname" | grep -v "grep" | awk '{print $2}') - if [ -z "$r" ]; then - return 0 - else - kill -9 $r - fi - echo "已停掉$procname!" - return 0 + local procname=$1 + r=$(ps aux | grep "$procname" | grep -v "grep" | awk '{print $2}') + if [ -z "$r" ]; then + return 0 + else + kill -9 $r + fi + echo "已停掉$procname!" + return 0 } checkSingboxAlive() { - local c=0 - if ps aux | grep serv00sb | grep -v "grep" >/dev/null; then - ((c++)) - fi + local c=0 + if ps aux | grep serv00sb | grep -v "grep" >/dev/null; then + ((c++)) + fi - if ps aux | grep cloudflare | grep -v "grep" >/dev/null; then - ((c++)) - fi + if ps aux | grep cloudflare | grep -v "grep" >/dev/null; then + ((c++)) + fi - if [ $c -eq 2 ]; then - return 0 - fi + if [ $c -eq 2 ]; then + return 0 + fi - return 1 # 有一个或多个进程不在运行 + return 1 # 有一个或多个进程不在运行 } checkMtgAlive() { - if ps aux | grep mtg | grep -v "grep" >/dev/null; then - return 0 - else - return 1 - fi + if ps aux | grep mtg | grep -v "grep" >/dev/null; then + return 0 + else + return 1 + fi } stopNeZhaAgent() { - r=$(ps aux | grep nezha-agent | grep -v "grep" | awk '{print $2}') - if [ -z "$r" ]; then - return 0 - else - kill -9 $r - fi - echo "已停掉nezha-agent!" + r=$(ps aux | grep nezha-agent | grep -v "grep" | awk '{print $2}') + if [ -z "$r" ]; then + return 0 + else + kill -9 $r + fi + echo "已停掉nezha-agent!" } writeWX() { - has_fd=$(echo "$config_content" | jq 'has("wxsendkey")') - if [ "$has_fd" == "true" ]; then - wx_sendkey=$(echo "$config_content" | jq -r ".wxsendkey") - read -p "已有 WXSENDKEY ($wx_sendkey), 是否修改? [y/n] [n]:" input - input=${input:-n} - if [ "$input" == "y" ]; then - read -p "请输入 WXSENDKEY:" wx_sendkey - fi - json_content+=" \"wxsendkey\": \"${wx_sendkey}\", \n" - else - read -p "请输入 WXSENDKEY:" wx_sendkey - json_content+=" \"wxsendkey\": \"${wx_sendkey}\", \n" - fi + has_fd=$(echo "$config_content" | jq 'has("wxsendkey")') + if [ "$has_fd" == "true" ]; then + wx_sendkey=$(echo "$config_content" | jq -r ".wxsendkey") + read -p "已有 WXSENDKEY ($wx_sendkey), 是否修改? [y/n] [n]:" input + input=${input:-n} + if [ "$input" == "y" ]; then + read -p "请输入 WXSENDKEY:" wx_sendkey + fi + json_content+=" \"wxsendkey\": \"${wx_sendkey}\", \n" + else + read -p "请输入 WXSENDKEY:" wx_sendkey + json_content+=" \"wxsendkey\": \"${wx_sendkey}\", \n" + fi } writeTG() { - has_fd=$(echo "$config_content" | jq 'has("telegram_token")') - if [ "$has_fd" == "true" ]; then - tg_token=$(echo "$config_content" | jq -r ".telegram_token") - read -p "已有 TELEGRAM_TOKEN ($tg_token), 是否修改? [y/n] [n]:" input - input=${input:-n} - if [ "$input" == "y" ]; then - read -p "请输入 TELEGRAM_TOKEN:" tg_token - fi - json_content+=" \"telegram_token\": \"${tg_token}\", \n" - else - read -p "请输入 TELEGRAM_TOKEN:" tg_token - json_content+=" \"telegram_token\": \"${tg_token}\", \n" - fi - - has_fd=$(echo "$config_content" | jq 'has("telegram_userid")') - if [ "$has_fd" == "true" ]; then - tg_userid=$(echo "$config_content" | jq -r ".telegram_userid") - read -p "已有 TELEGRAM_USERID ($tg_userid), 是否修改? [y/n] [n]:" input - input=${input:-n} - if [ "$input" == "y" ]; then - read -p "请输入 TELEGRAM_USERID:" tg_userid - fi - json_content+=" \"telegram_userid\": \"${tg_userid}\", \n" - else - read -p "请输入 TELEGRAM_USERID:" tg_userid - json_content+=" \"telegram_userid\": \"${tg_userid}\",\n" - fi + has_fd=$(echo "$config_content" | jq 'has("telegram_token")') + if [ "$has_fd" == "true" ]; then + tg_token=$(echo "$config_content" | jq -r ".telegram_token") + read -p "已有 TELEGRAM_TOKEN ($tg_token), 是否修改? [y/n] [n]:" input + input=${input:-n} + if [ "$input" == "y" ]; then + read -p "请输入 TELEGRAM_TOKEN:" tg_token + fi + json_content+=" \"telegram_token\": \"${tg_token}\", \n" + else + read -p "请输入 TELEGRAM_TOKEN:" tg_token + json_content+=" \"telegram_token\": \"${tg_token}\", \n" + fi + + has_fd=$(echo "$config_content" | jq 'has("telegram_userid")') + if [ "$has_fd" == "true" ]; then + tg_userid=$(echo "$config_content" | jq -r ".telegram_userid") + read -p "已有 TELEGRAM_USERID ($tg_userid), 是否修改? [y/n] [n]:" input + input=${input:-n} + if [ "$input" == "y" ]; then + read -p "请输入 TELEGRAM_USERID:" tg_userid + fi + json_content+=" \"telegram_userid\": \"${tg_userid}\", \n" + else + read -p "请输入 TELEGRAM_USERID:" tg_userid + json_content+=" \"telegram_userid\": \"${tg_userid}\",\n" + fi } cleanCron() { - echo "" >null - crontab null - rm null + echo "" >null + crontab null + rm null } delCron() { - crontab -l | grep -v "keepalive" >mycron - crontab mycron >/dev/null 2>&1 - rm mycron + crontab -l | grep -v "keepalive" >mycron + crontab mycron >/dev/null 2>&1 + rm mycron } addCron() { - local tm=$1 - crontab -l | grep -v "keepalive" >mycron - echo "*/$tm * * * * bash ${installpath}/serv00-play/keepalive.sh > /dev/null 2>&1 " >>mycron - crontab mycron >/dev/null 2>&1 - rm mycron + local tm=$1 + crontab -l | grep -v "keepalive" >mycron + echo "*/$tm * * * * bash ${installpath}/serv00-play/keepalive.sh > /dev/null 2>&1 " >>mycron + crontab mycron >/dev/null 2>&1 + rm mycron } get_webip() { - # 获取主机名称,例如:s2.serv00.com - local hostname=$(hostname) + # 获取主机名称,例如:s2.serv00.com + local hostname=$(hostname) - # 提取主机名称中的数字,例如:2 - local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') + # 提取主机名称中的数字,例如:2 + local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') - # 构造主机名称的数组 - local hosts=("web${host_number}.$(getDoMain)" "cache${host_number}.$(getDoMain)") + # 构造主机名称的数组 + local hosts=("web${host_number}.$(getDoMain)" "cache${host_number}.$(getDoMain)") - # 初始化最终 IP 变量 - local final_ip="$(devil vhost list | grep web | awk '{print $1}')" + # 初始化最终 IP 变量 + local final_ip="$(devil vhost list | grep web | awk '{print $1}')" - # 遍历主机名称数组 - for host in "${hosts[@]}"; do - # 获取 API 返回的数据 - local response=$(curl -s "${baseurl}/api/getip?host=$host") + # 遍历主机名称数组 + for host in "${hosts[@]}"; do + # 获取 API 返回的数据 + local response=$(curl -s "${baseurl}/api/getip?host=$host") - # 检查返回的结果是否包含 "not found" - if [[ "$response" =~ "not found" ]]; then - continue - fi + # 检查返回的结果是否包含 "not found" + if [[ "$response" =~ "not found" ]]; then + continue + fi - # 提取第一个字段作为 IP,并检查第二个字段是否为 "Accessible" - local ip=$(echo "$response" | awk -F "|" '{ if ($2 == "Accessible") print $1 }') - # webxx.serv00.com域名对应的ip作为兜底ip - if [[ "$host" == "web${host_number}.$(getDoMain)" ]]; then - final_ip=$(echo "$response" | awk -F "|" '{print $1}') - fi + # 提取第一个字段作为 IP,并检查第二个字段是否为 "Accessible" + local ip=$(echo "$response" | awk -F "|" '{ if ($2 == "Accessible") print $1 }') + # webxx.serv00.com域名对应的ip作为兜底ip + if [[ "$host" == "web${host_number}.$(getDoMain)" ]]; then + final_ip=$(echo "$response" | awk -F "|" '{print $1}') + fi - # 如果找到了 "Accessible",返回 IP - if [[ -n "$ip" ]]; then - echo "$ip" - return - fi - done + # 如果找到了 "Accessible",返回 IP + if [[ -n "$ip" ]]; then + echo "$ip" + return + fi + done - echo "$final_ip" + echo "$final_ip" } get_ip() { - # 获取主机名称,例如:s2.serv00.com - local hostname=$(hostname) + # 获取主机名称,例如:s2.serv00.com + local hostname=$(hostname) - # 提取主机名称中的数字,例如:2 - local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') + # 提取主机名称中的数字,例如:2 + local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') - # 构造主机名称的数组 - local hosts=("cache${host_number}.$(getDoMain)" "web${host_number}.$(getDoMain)" "$hostname") + # 构造主机名称的数组 + local hosts=("cache${host_number}.$(getDoMain)" "web${host_number}.$(getDoMain)" "$hostname") - # 初始化最终 IP 变量 - local final_ip="$(curl -s icanhazip.com)" + # 初始化最终 IP 变量 + local final_ip="$(curl -s icanhazip.com)" - # 遍历主机名称数组 - for host in "${hosts[@]}"; do - # 获取 API 返回的数据 - local response=$(curl -s "${baseurl}/api/getip?host=$host") + # 遍历主机名称数组 + for host in "${hosts[@]}"; do + # 获取 API 返回的数据 + local response=$(curl -s "${baseurl}/api/getip?host=$host") - # 检查返回的结果是否包含 "not found" - if [[ "$response" =~ "not found" ]]; then - continue - fi + # 检查返回的结果是否包含 "not found" + if [[ "$response" =~ "not found" ]]; then + continue + fi - # 提取第一个字段作为 IP,并检查第二个字段是否为 "Accessible" - local ip=$(echo "$response" | awk -F "|" '{ if ($2 == "Accessible") print $1 }') + # 提取第一个字段作为 IP,并检查第二个字段是否为 "Accessible" + local ip=$(echo "$response" | awk -F "|" '{ if ($2 == "Accessible") print $1 }') - # 如果找到了 "Accessible",返回 IP - if [[ -n "$ip" ]]; then - echo "$ip" - return - fi + # 如果找到了 "Accessible",返回 IP + if [[ -n "$ip" ]]; then + echo "$ip" + return + fi - final_ip=$ip - done + final_ip=$ip + done - echo "$final_ip" + echo "$final_ip" } isServ00() { - [[ $(hostname) == *"serv00"* ]] + [[ $(hostname) == *"serv00"* ]] } getDoMain() { - if isServ00; then - echo -n "serv00.com" - else - echo -n "hostuno.com" - fi + if isServ00; then + echo -n "serv00.com" + else + echo -n "hostuno.com" + fi } getUserDoMain() { - local proc=$1 - local baseDomain="" - user="$(whoami)" - if isServ00; then - baseDomain="$user.serv00.net" - else - baseDomain="$user.useruno.com" - fi - if [[ -n "$proc" ]]; then - echo -n "$proc.$baseDomain" - else - echo -n "$baseDomain" - fi + local proc=$1 + local baseDomain="" + user="$(whoami)" + if isServ00; then + baseDomain="$user.serv00.net" + else + baseDomain="$user.useruno.com" + fi + if [[ -n "$proc" ]]; then + echo -n "$proc.$baseDomain" + else + echo -n "$baseDomain" + fi } #获取端口 getPort() { - local type=$1 - local opts=$2 - - local key="$type|$opts" - #echo "key: $key" - #port list中查找,如果没有随机分配一个 - if [[ -n "${port_array["$key"]}" ]]; then - #echo "找到list中的port" - echo "${port_array["$key"]}" - else - # echo "devil port add $type random $opts" - rt=$(devil port add $type random $opts) - if [[ "$rt" =~ .*succesfully.*$ || "$rt" =~ .*Ok.*$ ]]; then - loadPort - if [[ -n "${port_array["$key"]}" ]]; then - echo "${port_array["$key"]}" - else - echo "failed" - fi - else - echo "failed" - fi - fi + local type=$1 + local opts=$2 + + local key="$type|$opts" + #echo "key: $key" + #port list中查找,如果没有随机分配一个 + if [[ -n "${port_array["$key"]}" ]]; then + #echo "找到list中的port" + echo "${port_array["$key"]}" + else + # echo "devil port add $type random $opts" + rt=$(devil port add $type random $opts) + if [[ "$rt" =~ .*succesfully.*$ || "$rt" =~ .*Ok.*$ ]]; then + loadPort + if [[ -n "${port_array["$key"]}" ]]; then + echo "${port_array["$key"]}" + else + echo "failed" + fi + else + echo "failed" + fi + fi } randomPort() { - local type=$1 - local opts=$2 - port="" - #echo "type:$type, opts:$opts" - read -p "是否自动分配${opts}端口($type)?[y/n] [y]:" input - input=${input:-y} - if [[ "$input" == "y" ]]; then - port=$(getPort $type $opts) - if [[ "$port" == "failed" ]]; then - read -p "自动分配端口失败,请手动输入${opts}端口:" port - else - green "自动分配${opts}端口为:${port}" - fi - else - read -p "请输入${opts}端口($type):" port - fi + local type=$1 + local opts=$2 + port="" + #echo "type:$type, opts:$opts" + read -p "是否自动分配${opts}端口($type)?[y/n] [y]:" input + input=${input:-y} + if [[ "$input" == "y" ]]; then + port=$(getPort $type $opts) + if [[ "$port" == "failed" ]]; then + read -p "自动分配端口失败,请手动输入${opts}端口:" port + else + green "自动分配${opts}端口为:${port}" + fi + else + read -p "请输入${opts}端口($type):" port + fi } declare -A port_array #检查是否可以自动分配端口 loadPort() { - output=$(devil port list) - - port_array=() - # 解析输出内容 - index=0 - while read -r port typ opis; do - # 跳过标题行 - if [[ "$port" =~ "Port" ]]; then - continue - fi - #echo "port:$port,typ:$typ, opis:$opis" - if [[ "$port" =~ "Brak" || "$port" == "No" ]]; then - echo "未分配端口" - return 0 - fi - # 将 Typ 和 Opis 合并并存储到数组中 - if [[ -n "$typ" ]]; then - # 如果 Opis 为空则用空字符串代替 - opis=${opis:-""} - combined="${typ}|${opis}" - port_array["$combined"]="$port" - # echo "port_array 读入 key=$combined, value=$port" - ((index++)) - fi - done <<<"$output" - - return 0 + output=$(devil port list) + + port_array=() + # 解析输出内容 + index=0 + while read -r port typ opis; do + # 跳过标题行 + if [[ "$port" =~ "Port" ]]; then + continue + fi + #echo "port:$port,typ:$typ, opis:$opis" + if [[ "$port" =~ "Brak" || "$port" == "No" ]]; then + echo "未分配端口" + return 0 + fi + # 将 Typ 和 Opis 合并并存储到数组中 + if [[ -n "$typ" ]]; then + # 如果 Opis 为空则用空字符串代替 + opis=${opis:-""} + combined="${typ}|${opis}" + port_array["$combined"]="$port" + # echo "port_array 读入 key=$combined, value=$port" + ((index++)) + fi + done <<<"$output" + + return 0 } cleanPort() { - output=$(devil port list) - while read -r port typ opis; do - # 跳过标题行 - if [[ "$typ" == "Type" ]]; then - continue - fi - if [[ "$port" == "Brak" || "$port" == "No" ]]; then - return 0 - fi - if [[ -n "$typ" ]]; then - devil port del $typ $port >/dev/null 2>&1 - fi - done <<<"$output" - return 0 + output=$(devil port list) + while read -r port typ opis; do + # 跳过标题行 + if [[ "$typ" == "Type" ]]; then + continue + fi + if [[ "$port" == "Brak" || "$port" == "No" ]]; then + return 0 + fi + if [[ -n "$typ" ]]; then + devil port del $typ $port >/dev/null 2>&1 + fi + done <<<"$output" + return 0 } ISIDR=1 @@ -380,64 +380,64 @@ ISFILE=0 ISVIP=1 NOTVIP=0 checkDownload() { - local file=$1 - local is_dir=${2:-0} - local passwd=${3:-"fkjyyds666"} - local vipflag=${4:-0} - local filegz="$file.gz" - - if [[ $is_dir -eq 1 ]]; then - filegz="$file.tar.gz" - fi - - #检查并下载核心程序 - if [[ ! -e $file ]] || [[ $(file $file) == *"text"* ]]; then - echo "正在下载 $file..." - if [[ $vipflag -eq 1 ]]; then - url="https://gfg.fkj.pp.ua/app/vip/$filegz?pwd=$passwd" - else - url="https://gfg.fkj.pp.ua/app/serv00/$filegz?pwd=$passwd" - fi - #echo "url:$url" - curl -L -sS --max-time 20 -o $filegz "$url" - - if file $filegz | grep -q "text"; then - echo "无法正确下载!!!" - rm -f $filegz - return 1 - fi - if [ -e $filegz ]; then - if [[ $is_dir -eq 1 ]]; then - tar -zxf $filegz - else - gzip -d $filegz - fi - else - echo "下载失败,可能是网络问题." - return 1 - fi - #下载失败 - if [[ $is_dir -eq 0 && ! -e $file ]]; then - echo "无法下载核心程序,可能网络问题,请检查!" - return 1 - fi - # 设置可执行权限 - if [[ $is_dir -eq 0 ]]; then - chmod +x "$file" - fi - echo "下载完毕!" - fi - return 0 + local file=$1 + local is_dir=${2:-0} + local passwd=${3:-"fkjyyds666"} + local vipflag=${4:-0} + local filegz="$file.gz" + + if [[ $is_dir -eq 1 ]]; then + filegz="$file.tar.gz" + fi + + #检查并下载核心程序 + if [[ ! -e $file ]] || [[ $(file $file) == *"text"* ]]; then + echo "正在下载 $file..." + if [[ $vipflag -eq 1 ]]; then + url="https://gfg.fkj.pp.ua/app/vip/$filegz?pwd=$passwd" + else + url="https://gfg.fkj.pp.ua/app/serv00/$filegz?pwd=$passwd" + fi + #echo "url:$url" + curl -L -sS --max-time 20 -o $filegz "$url" + + if file $filegz | grep -q "text"; then + echo "无法正确下载!!!" + rm -f $filegz + return 1 + fi + if [ -e $filegz ]; then + if [[ $is_dir -eq 1 ]]; then + tar -zxf $filegz + else + gzip -d $filegz + fi + else + echo "下载失败,可能是网络问题." + return 1 + fi + #下载失败 + if [[ $is_dir -eq 0 && ! -e $file ]]; then + echo "无法下载核心程序,可能网络问题,请检查!" + return 1 + fi + # 设置可执行权限 + if [[ $is_dir -eq 0 ]]; then + chmod +x "$file" + fi + echo "下载完毕!" + fi + return 0 } # 对json文件字段进行插入或修改 # usage: upInsertFd jsonfile fieldname value upInsertFd() { - local jsonfile=$1 - local field=$2 - local value=$3 + local jsonfile=$1 + local field=$2 + local value=$3 - jq --arg field "$field" --arg value "$value" ' + jq --arg field "$field" --arg value "$value" ' if has($field) then .[$field] = $value else @@ -445,355 +445,399 @@ upInsertFd() { end ' "$jsonfile" >tmp.json && mv tmp.json "$jsonfile" - return $? + return $? } # 针对singbox.json, 对指定字段进行修改 upSingboxFd() { - local jsonfile=$1 - local array_name=$2 - local selector_key=$3 - local selector_value=$4 - local field_path=$5 - local value=$6 - - jq --arg selector_key "$selector_key" \ - --arg selector_value "$selector_value" \ - --arg field_path "$field_path" \ - --arg value "$value" " + local jsonfile=$1 + local array_name=$2 + local selector_key=$3 + local selector_value=$4 + local field_path=$5 + local value=$6 + + jq --arg selector_key "$selector_key" \ + --arg selector_value "$selector_value" \ + --arg field_path "$field_path" \ + --arg value "$value" " (.$array_name[] | select(.$selector_key == \$selector_value) | .[\$field_path]) = \$value " "$jsonfile" >tmp.json && mv tmp.json "$jsonfile" - return $? + return $? } # php默认配置文件操作 PHPCONFIG_FILE="phpconfig.json" # 判断JSON文件是否存在,若不存在则创建并初始化 initialize_json() { - if [ ! -f "$PHPCONFIG_FILE" ]; then - echo '{"domains": []}' >"$PHPCONFIG_FILE" - fi + if [ ! -f "$PHPCONFIG_FILE" ]; then + echo '{"domains": []}' >"$PHPCONFIG_FILE" + fi } # 添加新域名 add_domain() { - local new_domain="$1" - local webip="$2" + local new_domain="$1" + local webip="$2" - # 初始化JSON文件(如果不存在的话) - initialize_json + # 初始化JSON文件(如果不存在的话) + initialize_json - # 读取当前的JSON配置文件并检查域名是否已存在 - if grep -q "\"$new_domain\"" "$PHPCONFIG_FILE"; then - echo "域名 '$new_domain' 已存在!" - return 1 - fi + # 读取当前的JSON配置文件并检查域名是否已存在 + if grep -q "\"$new_domain\"" "$PHPCONFIG_FILE"; then + echo "域名 '$new_domain' 已存在!" + return 1 + fi - # 使用jq来处理JSON,添加新的域名到domains数组 - #jq --arg domain "$new_domain" '.domains += [$domain]' "$PHPCONFIG_FILE" >temp.json && mv temp.json "$PHPCONFIG_FILE" - jq ".domains += [{\"domain\": \"$domain\", \"webip\": \"$webip\"}]" "$PHPCONFIG_FILE" >"$PHPCONFIG_FILE.tmp" && mv "$PHPCONFIG_FILE.tmp" "$PHPCONFIG_FILE" - #echo "域名 '$new_domain' 添加成功!" - return 0 + # 使用jq来处理JSON,添加新的域名到domains数组 + #jq --arg domain "$new_domain" '.domains += [$domain]' "$PHPCONFIG_FILE" >temp.json && mv temp.json "$PHPCONFIG_FILE" + jq ".domains += [{\"domain\": \"$domain\", \"webip\": \"$webip\"}]" "$PHPCONFIG_FILE" >"$PHPCONFIG_FILE.tmp" && mv "$PHPCONFIG_FILE.tmp" "$PHPCONFIG_FILE" + #echo "域名 '$new_domain' 添加成功!" + return 0 } # 删除域名 delete_domain() { - local domain_to_delete="$1" + local domain_to_delete="$1" - # 初始化JSON文件(如果不存在的话) - initialize_json + # 初始化JSON文件(如果不存在的话) + initialize_json - # 读取当前的JSON配置文件并检查域名是否存在 - if ! grep -q "\"$domain_to_delete\"" "$PHPCONFIG_FILE"; then - echo "域名 '$domain_to_delete' 不存在!" - return 1 - fi + # 读取当前的JSON配置文件并检查域名是否存在 + if ! grep -q "\"$domain_to_delete\"" "$PHPCONFIG_FILE"; then + echo "域名 '$domain_to_delete' 不存在!" + return 1 + fi - local webip=$(jq -r ".domains[] | select(.domain == \"$domain\") | .webip" "$PHPCONFIG_FILE") - # 使用jq来处理JSON,删除指定的域名 - jq "del(.domains[] | select(.domain == \"$domain\"))" "$PHPCONFIG_FILE" >"$PHPCONFIG_FILE.tmp" && mv "$PHPCONFIG_FILE.tmp" "$PHPCONFIG_FILE" - local domainPath="$installpath/domains/$domain" - echo "正在删除域名相关服务,请等待..." - rm -rf "$domainPath" - resp=$(devil ssl www del $webip $domain) - resp=$(devil www del $domain --remove) - echo "已卸载域名[$domain_to_delete]相关服务!" - return 0 + local webip=$(jq -r ".domains[] | select(.domain == \"$domain\") | .webip" "$PHPCONFIG_FILE") + # 使用jq来处理JSON,删除指定的域名 + jq "del(.domains[] | select(.domain == \"$domain\"))" "$PHPCONFIG_FILE" >"$PHPCONFIG_FILE.tmp" && mv "$PHPCONFIG_FILE.tmp" "$PHPCONFIG_FILE" + local domainPath="$installpath/domains/$domain" + echo "正在删除域名相关服务,请等待..." + rm -rf "$domainPath" + resp=$(devil ssl www del $webip $domain) + resp=$(devil www del $domain --remove) + echo "已卸载域名[$domain_to_delete]相关服务!" + return 0 } # 判断domains数组是否为空 check_domains_empty() { - initialize_json + initialize_json - local domains_count=$(jq '.domains | length' "$PHPCONFIG_FILE") + local domains_count=$(jq '.domains | length' "$PHPCONFIG_FILE") - if [ "$domains_count" -eq 0 ]; then - return 0 - else - return 1 - fi + if [ "$domains_count" -eq 0 ]; then + return 0 + else + return 1 + fi } print_domains() { - yellow "----------------------------" - green "域名\t\t|\t服务IP" - yellow "----------------------------" + yellow "----------------------------" + green "域名\t\t|\t服务IP" + yellow "----------------------------" - # 使用jq格式化输出 - jq -r '.domains[] | "\(.domain)\t|\(.webip)"' "$PHPCONFIG_FILE" + # 使用jq格式化输出 + jq -r '.domains[] | "\(.domain)\t|\(.webip)"' "$PHPCONFIG_FILE" } delete_all_domains() { - initialize_json + initialize_json - jq -r '.domains[] | "\(.domain)\t\(.webip)"' "$PHPCONFIG_FILE" | while read -r domain webip; do - echo "域名: $domain, 服务IP: $webip" - delete_domain "$domain" - done + jq -r '.domains[] | "\(.domain)\t\(.webip)"' "$PHPCONFIG_FILE" | while read -r domain webip; do + echo "域名: $domain, 服务IP: $webip" + delete_domain "$domain" + done +} + +get_one_domain() { + initialize_json + + local first_domain=$(jq -r '.domains[0].domain' "$PHPCONFIG_FILE") + echo "$first_domain" } download_from_net() { - local app=$1 + local app=$1 - case $app in - "alist") - download_from_github_release "AlistGo" "alist" "alist-freebsd-amd64.tar.gz" - ;; - "nezha-agent") - download_from_github_release "nezhahq" "agent" "nezha-agent_freebsd_amd64.zip" - ;; - "nezha-dashboard") - download_from_github_release "frankiejun" "freebsd-nezha" "dashboard.gz" - ;; - esac + case $app in + "alist") + download_from_github_release "AlistGo" "alist" "alist-freebsd-amd64.tar.gz" + ;; + "nezha-agent") + download_from_github_release "nezhahq" "agent" "nezha-agent_freebsd_amd64.zip" + ;; + "nezha-dashboard") + download_from_github_release "frankiejun" "freebsd-nezha" "dashboard.gz" + ;; + esac } check_update_from_net() { - local app=$1 - - case $app in - "alist") - local current_version=$(./alist version | grep "Version: v" | awk '{print $2}') - if ! check_from_github "AlistGo" "alist" "$current_version"; then - echo "未发现新版本!" - return 1 - fi - download_from_github_release "AlistGo" "alist" "alist-freebsd-amd64.tar.gz" - ;; - "nezha-agent") - local current_version="v"$(./nezha-agent -v | awk '{print $3}') - if ! check_from_github "nezhahq" "agent" "$current_version"; then - echo "未发现新版本!" - return 1 - fi - download_from_github_release "nezhahq" "agent" "nezha-agent_freebsd_amd64.zip" - ;; - "nezha-dashboard") - local current_version=$(./nezha-dashboard -v) - if ! check_from_github "frankiejun" "freebsd-nezha" "$current_version"; then - echo "未发现新版本!" - return 1 - fi - download_from_github_release "frankiejun" "freebsd-nezha" "dashboard.gz" - ;; - esac + local app=$1 + + case $app in + "alist") + local current_version=$(./alist version | grep "Version: v" | awk '{print $2}') + if ! check_from_github "AlistGo" "alist" "$current_version"; then + echo "未发现新版本!" + return 1 + fi + download_from_github_release "AlistGo" "alist" "alist-freebsd-amd64.tar.gz" + ;; + "nezha-agent") + local current_version="v"$(./nezha-agent -v | awk '{print $3}') + if ! check_from_github "nezhahq" "agent" "$current_version"; then + echo "未发现新版本!" + return 1 + fi + download_from_github_release "nezhahq" "agent" "nezha-agent_freebsd_amd64.zip" + ;; + "nezha-dashboard") + local current_version=$(./nezha-dashboard -v) + if ! check_from_github "frankiejun" "freebsd-nezha" "$current_version"; then + echo "未发现新版本!" + return 1 + fi + download_from_github_release "frankiejun" "freebsd-nezha" "dashboard.gz" + ;; + esac } check_from_github() { - local user=$1 - local repository=$2 - local local_version="$3" - local url="https://github.com/${user}/${repository}" - local latestUrl="$url/releases/latest" - - latest_version=$(curl -sL $latestUrl | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) - #latest_version=$(curl -sL "https://api.github.com/repos/${user}/${repository}/releases/latest" | jq -r '.tag_name // empty') - if [[ "$local_version" != "$latest_version" ]]; then - echo "发现新版本: $latest_version,当前版本: $local_version, 正在更新..." - return 0 - fi - return 1 + local user=$1 + local repository=$2 + local local_version="$3" + local url="https://github.com/${user}/${repository}" + local latestUrl="$url/releases/latest" + + latest_version=$(curl -sL $latestUrl | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + #latest_version=$(curl -sL "https://api.github.com/repos/${user}/${repository}/releases/latest" | jq -r '.tag_name // empty') + if [[ "$local_version" != "$latest_version" ]]; then + echo "发现新版本: $latest_version,当前版本: $local_version, 正在更新..." + return 0 + fi + return 1 +} + +download_allcode_from_github_release() { + local user=$1 + local repository=$2 + + local url="https://github.com/${user}/${repository}" + local latestUrl="$url/releases/latest" + local latest_version=$(curl -sL $latestUrl | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + local download_url="${url}/archive/refs/tags/${latest_version}.zip" + + curl -sL -o "${repository}-${latest_version}.zip" "$download_url" + if [[ ! -e "${repository}-${latest_version}.zip" || -n $(file "${repository}-${latest_version}.zip" | grep "text") ]]; then + echo "下载 ${repository}-${latest_version}.zip 文件失败!" + return 1 + fi + + # 原地解压缩 + # 创建临时目录tmp + mkdir -p tmp + local clean_version="${latest_version#v}" + local target_dir="${repository}-${clean_version}" + #echo "target_dir: $target_dir" + case "${repository}-${latest_version}.zip" in + *.zip) + unzip -o "${repository}-${latest_version}.zip" -d tmp + mv "tmp/${target_dir}/"* tmp + ;; + *.tar.gz) + tar -xzf "${repository}-${latest_version}.tar.gz" --xform="s|^[^/]*|tmp|" + ;; + *) + echo "不支持的文件格式" + return 1 + ;; + esac + rm -rf "${repository}-${latest_version}.zip" } download_from_github_release() { - local user=$1 - local repository=$2 - local zippackage="$3" - - local url="https://github.com/${user}/${repository}" - local latestUrl="$url/releases/latest" - - local latest_version=$(curl -sL $latestUrl | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) - #latest_version=$(curl -sL "https://api.github.com/repos/${user}/${repository}/releases/latest" | jq -r '.tag_name // empty') - local download_url="${url}/releases/download/$latest_version/$zippackage" - curl -sL -o "$zippackage" "$download_url" - if [[ ! -e "$zippackage" || -n $(file "$zippackage" | grep "text") ]]; then - echo "下载 $zippackage 文件失败!" - return 1 - fi - # 原地解压缩 - case "$zippackage" in - *.zip) - unzip -o "$zippackage" -d . - ;; - *.tar.gz | *.tgz) - tar -xzf "$zippackage" - ;; - *.tar.bz2 | *.tbz2) - tar -xjf "$zippackage" - ;; - *.tar.xz | *.txz) - tar -xJf "$zippackage" - ;; - *.gz) - gzip -d "$zippackage" - ;; - *.tar) - tar -xf "$zippackage" - ;; - *) - echo "不支持的文件格式: $zippackage" - return 1 - ;; - esac - - if [[ $? -ne 0 ]]; then - echo "解压 $zippackage 文件失败!" - return 1 - fi - - rm -rf "$zippackage" - echo "下载并解压 $zippackage 成功!" - return 0 + local user=$1 + local repository=$2 + local zippackage="$3" + + local url="https://github.com/${user}/${repository}" + local latestUrl="$url/releases/latest" + + local latest_version=$(curl -sL $latestUrl | sed -n 's/.*tag\/\(v[0-9.]*\).*/\1/p' | head -1) + #latest_version=$(curl -sL "https://api.github.com/repos/${user}/${repository}/releases/latest" | jq -r '.tag_name // empty') + local download_url="${url}/releases/download/$latest_version/$zippackage" + curl -sL -o "$zippackage" "$download_url" + if [[ ! -e "$zippackage" || -n $(file "$zippackage" | grep "text") ]]; then + echo "下载 $zippackage 文件失败!" + return 1 + fi + # 原地解压缩 + case "$zippackage" in + *.zip) + unzip -o "$zippackage" -d . + ;; + *.tar.gz | *.tgz) + tar -xzf "$zippackage" + ;; + *.tar.bz2 | *.tbz2) + tar -xjf "$zippackage" + ;; + *.tar.xz | *.txz) + tar -xJf "$zippackage" + ;; + *.gz) + gzip -d "$zippackage" + ;; + *.tar) + tar -xf "$zippackage" + ;; + *) + echo "不支持的文件格式: $zippackage" + return 1 + ;; + esac + + if [[ $? -ne 0 ]]; then + echo "解压 $zippackage 文件失败!" + return 1 + fi + + rm -rf "$zippackage" + echo "下载并解压 $zippackage 成功!" + return 0 } clean_all_domains() { - echo "正在清理域名..." - output=$(devil www list) - if echo "$output" | grep -q "No elements to display"; then - echo "没有发现在用域名." - return 0 - fi - domains=($(echo "$output" | awk 'NF && NR>2 {print $1}')) + echo "正在清理域名..." + output=$(devil www list) + if echo "$output" | grep -q "No elements to display"; then + echo "没有发现在用域名." + return 0 + fi + domains=($(echo "$output" | awk 'NF && NR>2 {print $1}')) - for domain in "${domains[@]}"; do - devil www del $domain --remove - done - echo "域名清理完毕!" + for domain in "${domains[@]}"; do + devil www del $domain --remove + done + echo "域名清理完毕!" } create_default_domain() { - echo "正在创建默认域名..." - local domain=$(getUserDoMain) - domain="${domain,,}" - devil www add $domain php - echo "默认域名创建成功!" + echo "正在创建默认域名..." + local domain=$(getUserDoMain) + domain="${domain,,}" + devil www add $domain php + echo "默认域名创建成功!" } clean_all_dns() { - echo "正在清理DNS..." - output=$(devil dns list) - if echo "$output" | grep -q "No elements to display"; then - echo "没有发现在用DNS." - return 0 - fi - domains=($(echo "$output" | awk 'NF && NR>2 {print $1}')) + echo "正在清理DNS..." + output=$(devil dns list) + if echo "$output" | grep -q "No elements to display"; then + echo "没有发现在用DNS." + return 0 + fi + domains=($(echo "$output" | awk 'NF && NR>2 {print $1}')) - for domain in "${domains[@]}"; do - devil dns del $domain - done - echo "DNS清理完毕!" + for domain in "${domains[@]}"; do + devil dns del $domain + done + echo "DNS清理完毕!" } show_ip_status() { - localIPs=() - useIPs=() - local hostname=$(hostname) - local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') - local hosts=("cache${host_number}.$(getDoMain)" "web${host_number}.$(getDoMain)" "$hostname") - - # 遍历主机名称数组 - local i=0 - for host in "${hosts[@]}"; do - ((i++)) - # 获取 API 返回的数据 - local response=$(curl -s "${baseurl}/api/getip?host=$host") - - # 检查返回的结果是否包含 "not found" - if [[ "$response" =~ "not found" ]]; then - echo "未识别主机${host}, 请联系作者饭奇骏!" - return - fi - local ip=$(echo "$response" | awk -F "|" '{print $1 }') - local status=$(echo "$response" | awk -F "|" '{print $2 }') - localIPs+=("$ip") - if [[ "$status" == "Accessible" ]]; then - useIPs+=("$ip") - fi - printf "%-2d %-20s | %-15s | %-10s\n" $i "$host" "$ip" "$status" - done + localIPs=() + useIPs=() + local hostname=$(hostname) + local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') + local hosts=("cache${host_number}.$(getDoMain)" "web${host_number}.$(getDoMain)" "$hostname") + + # 遍历主机名称数组 + local i=0 + for host in "${hosts[@]}"; do + ((i++)) + # 获取 API 返回的数据 + local response=$(curl -s "${baseurl}/api/getip?host=$host") + + # 检查返回的结果是否包含 "not found" + if [[ "$response" =~ "not found" ]]; then + echo "未识别主机${host}, 请联系作者饭奇骏!" + return + fi + local ip=$(echo "$response" | awk -F "|" '{print $1 }') + local status=$(echo "$response" | awk -F "|" '{print $2 }') + localIPs+=("$ip") + if [[ "$status" == "Accessible" ]]; then + useIPs+=("$ip") + fi + printf "%-2d %-20s | %-15s | %-10s\n" $i "$host" "$ip" "$status" + done } stop_sing_box() { - cd ${installpath}/serv00-play/singbox - if [ -f killsing-box.sh ]; then - chmod 755 ./killsing-box.sh - ./killsing-box.sh - else - echo "请先安装serv00-play!!!" - return - fi - echo "已停掉sing-box!" + cd ${installpath}/serv00-play/singbox + if [ -f killsing-box.sh ]; then + chmod 755 ./killsing-box.sh + ./killsing-box.sh + else + echo "请先安装serv00-play!!!" + return + fi + echo "已停掉sing-box!" } start_sing_box() { - cd ${installpath}/serv00-play/singbox - - if [[ ! -e "singbox.json" ]]; then - red "请先进行配置!" - return 1 - fi - - if ! checkDownload "serv00sb"; then - return - fi - if ! checkDownload "cloudflared"; then - return - fi - - if checkSingboxAlive; then - red "sing-box 已在运行,请勿重复操作!" - return 1 - else #启动可能需要cloudflare,此处表示cloudflare和sb有一个不在线,所以干脆先杀掉再重启。 - chmod 755 ./killsing-box.sh - ./killsing-box.sh - fi - - if chmod +x start.sh && ! ./start.sh; then - red "sing-box启动失败!" - exit 1 - fi - sleep 2 - if checkProcAlive "serv00sb"; then - yellow "启动成功!" - else - red "启动失败!" - fi + cd ${installpath}/serv00-play/singbox + + if [[ ! -e "singbox.json" ]]; then + red "请先进行配置!" + return 1 + fi + + if ! checkDownload "serv00sb"; then + return + fi + if ! checkDownload "cloudflared"; then + return + fi + + if checkSingboxAlive; then + red "sing-box 已在运行,请勿重复操作!" + return 1 + else #启动可能需要cloudflare,此处表示cloudflare和sb有一个不在线,所以干脆先杀掉再重启。 + chmod 755 ./killsing-box.sh + ./killsing-box.sh + fi + + if chmod +x start.sh && ! ./start.sh; then + red "sing-box启动失败!" + exit 1 + fi + sleep 2 + if checkProcAlive "serv00sb"; then + yellow "启动成功!" + else + red "启动失败!" + fi } checkCronNameStatus() { - if checkCronName $1; then - green "在线" - else - red "离线" - fi + if checkCronName $1; then + green "在线" + else + red "离线" + fi } checkCronName() { - local name=$1 - if crontab -l | grep -q "$name"; then - return 0 - else - return 1 - fi + local name=$1 + if crontab -l | grep -q "$name"; then + return 0 + else + return 1 + fi } From a96a6e009dca7c6555d251d7566057b1702f734c Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Mon, 1 Dec 2025 15:26:51 +0800 Subject: [PATCH 164/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0wxpush=E6=94=AF?= =?UTF-8?q?=E6=8C=81+=E8=87=AA=E5=8A=A8=E4=BB=A3=E7=90=86=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E4=BF=9D=E6=B4=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 6 ++++++ .github/workflows/keep.yml | 2 ++ keepalive/app.js | 6 +++++- revive.sh | 14 +++++++++++++- revive_node.sh | 6 +++++- 5 files changed, 31 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 89603073..e72dd590 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -19,6 +19,7 @@ jobs: run: | sudo apt-get install sshpass sudo apt-get install jq + sudo apt-get install connect-proxy - name: 登录各个serv00并执行保活脚本 env: @@ -32,6 +33,11 @@ jobs: BUTTON_URL: ${{secrets.BUTTON_URL}} AUTOUPDATE: ${{vars.AUTOUPDATE}} LOGININFO: ${{vars.LOGININFO}} + PROXY_HOST: ${{vars.PROXY_HOST}} + PROXY_PORT: ${{vars.PROXY_PORT}} + PROXY_USER: ${{vars.PROXY_USER}} + PROXY_PASS: ${{vars.PROXY_PASS}} + run: | chmod +x ./revive.sh ./revive.sh diff --git a/.github/workflows/keep.yml b/.github/workflows/keep.yml index 5a02fd98..e38ebaea 100644 --- a/.github/workflows/keep.yml +++ b/.github/workflows/keep.yml @@ -24,6 +24,8 @@ jobs: HOSTS_JSON: ${{ secrets.HOSTS_JSON }} TELEGRAM_TOKEN: ${{secrets.TELEGRAM_TOKEN}} TELEGRAM_USERID: ${{secrets.TELEGRAM_USERID}} + WXPUSH_URL: ${{secrets.WXPUSH_URL}} + WX_TOKEN: ${{secrets.WX_TOKEN}} SENDTYPE: ${{secrets.SENDTYPE}} BUTTON_URL: ${{secrets.BUTTON_URL}} AUTOUPDATE: ${{vars.AUTOUPDATE}} diff --git a/keepalive/app.js b/keepalive/app.js index 116bf59a..170ef8ea 100644 --- a/keepalive/app.js +++ b/keepalive/app.js @@ -157,6 +157,8 @@ app.get('/keep', validateToken, async (req, res) => { logError(`wxsendkey: ${req.query.wxsendkey}`) logError(`buttonurl: ${req.query.buttonurl}`) logError(`pass: ${req.query.pass}`) + logError(`wxpushurl: ${req.query.wxpushurl}`) + logError(`wxtoken: ${req.query.wxtoken}`) const params = { autoupdate: getAutoupdateStatus(req.query.autoupdate), @@ -168,6 +170,8 @@ app.get('/keep', validateToken, async (req, res) => { wxsendkey: cleanAndDecode(req.query.wxsendkey), buttonurl: cleanAndDecode(req.query.buttonurl), pass: cleanAndDecode(req.query.password), + wxpushurl: cleanAndDecode(req.query.wxpushurl), + wxtoken: cleanAndDecode(req.query.wxtoken), } logError( @@ -179,7 +183,7 @@ app.get('/keep', validateToken, async (req, res) => { ) // 本地执行 logError('本地执行keepalive') - const cmd = `cd ${serv00PlayDir} && nohup bash ${keepaliveScript} ${params.autoupdate} ${params.sendtype} ${params.telegramtoken} ${params.telegramuserid} ${params.wxsendkey} ${params.buttonurl} ${params.pass} > /dev/null 2>&1 &` + const cmd = `cd ${serv00PlayDir} && nohup bash ${keepaliveScript} ${params.autoupdate} ${params.sendtype} ${params.telegramtoken} ${params.telegramuserid} ${params.wxsendkey} ${params.buttonurl} ${params.pass} ${params.wxpushurl} ${params.wxtoken} > /dev/null 2>&1 &` logError('cmd:' + cmd) exec(cmd, (error) => { if (error) { diff --git a/revive.sh b/revive.sh index 62820496..097719d8 100644 --- a/revive.sh +++ b/revive.sh @@ -11,6 +11,13 @@ BUTTON_URL=${BUTTON_URL:-null} LOGININFO=${LOGININFO:-N} export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL +PROXY_HOST=${PROXY_HOST:-null} +PROXY_PORT=${PROXY_PORT:-null} +PROXY_USER=${PROXY_USER:-null} +PROXY_PASS=${PROXY_PASS:-null} + +export SOCKS5_USER="$PROXY_USER" +export SOCKS5_PASSWD="$PROXY_PASS" # 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) summary="" @@ -25,7 +32,12 @@ for info in "${hosts_info[@]}"; do else script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" fi - output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") + #使用socks5代理进行登录 + if [[ "$PROXY_HOST" != "null" ]]; then + output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 -o ProxyCommand="connect -S ${PROXY_HOST}:${PROXY_PORT} %h %p" -p "$port" "$user@$host" "bash -s" <<<"$script") + else + output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") + fi echo "output:$output" diff --git a/revive_node.sh b/revive_node.sh index f857e0cc..3bfbfef7 100644 --- a/revive_node.sh +++ b/revive_node.sh @@ -9,6 +9,8 @@ SENDTYPE=${SENDTYPE:-null} TELEGRAM_TOKEN=${TELEGRAM_TOKEN:-null} TELEGRAM_USERID=${TELEGRAM_USERID:-null} WXSENDKEY=${WXSENDKEY:-null} +WXPUSH_URL=${WXPUSH_URL:-null} +WX_TOKEN=${WX_TOKEN:-null} BUTTON_URL=${BUTTON_URL:-null} LOGININFO=${LOGININFO:-N} TOKEN=${TOKEN:-""} @@ -16,6 +18,8 @@ TOKEN=${TOKEN:-""} TOKEN=$(toBase64 $TOKEN) base64_TELEGRAM_TOKEN=$(toBase64 $TELEGRAM_TOKEN) Base64BUTTON_URL=$(toBase64 $BUTTON_URL) +base64_WXPUSH_URL=$(toBase64 $WXPUSH_URL) +base64_WX_TOKEN=$(toBase64 $WX_TOKEN) export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL @@ -29,7 +33,7 @@ for info in "${hosts_info[@]}"; do echo "host: $host" bas64_pass=$(toBase64 $pass) - output=$(curl -s -o /dev/null -w "%{http_code}" "https://$user.serv00.net/keep?token=$TOKEN&autoupdate=$AUTOUPDATE&sendtype=$SENDTYPE&telegramtoken=$base64_TELEGRAM_TOKEN&telegramuserid=$TELEGRAM_USERID&wxsendkey=$WXSENDKEY&buttonurl=$Base64BUTTON_URL&password=$bas64_pass") + output=$(curl -s -o /dev/null -w "%{http_code}" "https://$user.serv00.net/keep?token=$TOKEN&autoupdate=$AUTOUPDATE&sendtype=$SENDTYPE&telegramtoken=$base64_TELEGRAM_TOKEN&telegramuserid=$TELEGRAM_USERID&wxsendkey=$WXSENDKEY&buttonurl=$Base64BUTTON_URL&password=$bas64_pass&wxpushurl=$base64_WXPUSH_URL&wxtoken=$base64_WX_TOKEN") if [ "$output" -eq 200 ]; then echo "连接成功,账号正常" From fdaa5aaee162aefa73209412dd773d0d8c056cf9 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Mon, 1 Dec 2025 18:21:06 +0800 Subject: [PATCH 165/210] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E4=BB=A3=E7=90=86?= =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 3 ++- revive.sh | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e72dd590..71c9891e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,7 +4,7 @@ on: schedule: # 使用cron表达式定义任务运行的时间 # github使用utc时间 - - cron: '3 22 * * *' #北京时间6点 + - cron: '3 22 1 * *' #每个月1号的北京时间6点 workflow_dispatch: jobs: @@ -20,6 +20,7 @@ jobs: sudo apt-get install sshpass sudo apt-get install jq sudo apt-get install connect-proxy + sudo apt-get install -y netcat-openbsd - name: 登录各个serv00并执行保活脚本 env: diff --git a/revive.sh b/revive.sh index 097719d8..846336f3 100644 --- a/revive.sh +++ b/revive.sh @@ -28,11 +28,19 @@ for info in "${hosts_info[@]}"; do pass=$(echo $info | jq -r ".password") if [[ "$AUTOUPDATE" == "Y" ]]; then + echo "测试基础连接..." + timeout 5 nc -zv $PROXY_HOST $PROXY_PORT + if [ $? -eq 0 ]; then + echo "✓ 可以连接到代理服务器" + else + echo "✗ 无法连接到代理服务器" + exit 1 + fi script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" else script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" fi - #使用socks5代理进行登录 + #使用socks5代理进行登录 if [[ "$PROXY_HOST" != "null" ]]; then output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 -o ProxyCommand="connect -S ${PROXY_HOST}:${PROXY_PORT} %h %p" -p "$port" "$user@$host" "bash -s" <<<"$script") else From 7144f8f7d647521176fdb7c64886ac549de7cbdf Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Tue, 2 Dec 2025 11:23:20 +0800 Subject: [PATCH 166/210] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 8 ++++---- revive.sh | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 71c9891e..cec486ce 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -34,10 +34,10 @@ jobs: BUTTON_URL: ${{secrets.BUTTON_URL}} AUTOUPDATE: ${{vars.AUTOUPDATE}} LOGININFO: ${{vars.LOGININFO}} - PROXY_HOST: ${{vars.PROXY_HOST}} - PROXY_PORT: ${{vars.PROXY_PORT}} - PROXY_USER: ${{vars.PROXY_USER}} - PROXY_PASS: ${{vars.PROXY_PASS}} + PROXY_HOST: ${{secrets.PROXY_HOST}} + PROXY_PORT: ${{secrets.PROXY_PORT}} + PROXY_USER: ${{secrets.PROXY_USER}} + PROXY_PASS: ${{secrets.PROXY_PASS}} run: | chmod +x ./revive.sh diff --git a/revive.sh b/revive.sh index 846336f3..c2a62f5e 100644 --- a/revive.sh +++ b/revive.sh @@ -16,8 +16,8 @@ PROXY_PORT=${PROXY_PORT:-null} PROXY_USER=${PROXY_USER:-null} PROXY_PASS=${PROXY_PASS:-null} -export SOCKS5_USER="$PROXY_USER" -export SOCKS5_PASSWD="$PROXY_PASS" +#export SOCKS5_USER="$PROXY_USER" +#export SOCKS5_PASSWD="$PROXY_PASS" # 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) summary="" @@ -28,6 +28,12 @@ for info in "${hosts_info[@]}"; do pass=$(echo $info | jq -r ".password") if [[ "$AUTOUPDATE" == "Y" ]]; then + script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" + else + script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" + fi + #使用socks5代理进行登录 + if [[ "$PROXY_HOST" != "null" ]]; then echo "测试基础连接..." timeout 5 nc -zv $PROXY_HOST $PROXY_PORT if [ $? -eq 0 ]; then @@ -36,12 +42,6 @@ for info in "${hosts_info[@]}"; do echo "✗ 无法连接到代理服务器" exit 1 fi - script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" - else - script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" - fi - #使用socks5代理进行登录 - if [[ "$PROXY_HOST" != "null" ]]; then output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 -o ProxyCommand="connect -S ${PROXY_HOST}:${PROXY_PORT} %h %p" -p "$port" "$user@$host" "bash -s" <<<"$script") else output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") From 51157d92e0ffef4be3331dacaadba78c5acb472b Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Tue, 2 Dec 2025 14:25:19 +0800 Subject: [PATCH 167/210] =?UTF-8?q?=E6=AF=8F=E5=A4=A9=E5=8F=AA=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E4=B8=80=E4=B8=AA=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 3 +- README.md | 1 + revive.sh | 63 ++++++++++++++++++++++++++++-------- 3 files changed, 52 insertions(+), 15 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index cec486ce..502f87f3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,7 +4,7 @@ on: schedule: # 使用cron表达式定义任务运行的时间 # github使用utc时间 - - cron: '3 22 1 * *' #每个月1号的北京时间6点 + - cron: '3 22 * * *' #北京时间6点 workflow_dispatch: jobs: @@ -34,6 +34,7 @@ jobs: BUTTON_URL: ${{secrets.BUTTON_URL}} AUTOUPDATE: ${{vars.AUTOUPDATE}} LOGININFO: ${{vars.LOGININFO}} + LOGINONCE: ${{vars.LOGINONCE}} PROXY_HOST: ${{secrets.PROXY_HOST}} PROXY_PORT: ${{secrets.PROXY_PORT}} PROXY_USER: ${{secrets.PROXY_USER}} diff --git a/README.md b/README.md index 75cb13ee..a411a740 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st | BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选),支持#HOST,#USER,#PASS 等变量。 | | AUTOUPDATE | Y/N | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | | LOGININFO | Y/N | 在 variable 变量中设置(默认为 N),Y:发送登录汇总消息 N:只在登录失败时发送 | +| LOGINONCE | Y/N | 在 variable 变量中设置(默认为 N),Y:每天只登录一个账号 N:每天登录所有账号送 | | TOKEN | 123456 | 网页保活(keepalive)的密钥(必选) | 各主机保活时可不必输入消息通知参数,由 github 同一配置参数。 diff --git a/revive.sh b/revive.sh index c2a62f5e..d73dd85e 100644 --- a/revive.sh +++ b/revive.sh @@ -9,6 +9,7 @@ WXPUSH_URL=${WXPUSH_URL:-null} WX_TOKEN=${WX_TOKEN:-null} BUTTON_URL=${BUTTON_URL:-null} LOGININFO=${LOGININFO:-N} +LOGINONCE=${LOGINONCE:-N} export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL PROXY_HOST=${PROXY_HOST:-null} @@ -16,16 +17,16 @@ PROXY_PORT=${PROXY_PORT:-null} PROXY_USER=${PROXY_USER:-null} PROXY_PASS=${PROXY_PASS:-null} -#export SOCKS5_USER="$PROXY_USER" -#export SOCKS5_PASSWD="$PROXY_PASS" -# 使用 jq 提取 JSON 数组,并将其加载为 Bash 数组 -hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) -summary="" -for info in "${hosts_info[@]}"; do - user=$(echo $info | jq -r ".username") - host=$(echo $info | jq -r ".host") - port=$(echo $info | jq -r ".port") - pass=$(echo $info | jq -r ".password") +export SOCKS5_USER="$PROXY_USER" +export SOCKS5_PASSWD="$PROXY_PASS" + +# 登录服务器并执行保活脚本 +login_server() { + local user=$1 + local host=$2 + local port=$3 + local pass=$4 + local msg="" if [[ "$AUTOUPDATE" == "Y" ]]; then script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" @@ -35,8 +36,7 @@ for info in "${hosts_info[@]}"; do #使用socks5代理进行登录 if [[ "$PROXY_HOST" != "null" ]]; then echo "测试基础连接..." - timeout 5 nc -zv $PROXY_HOST $PROXY_PORT - if [ $? -eq 0 ]; then + if timeout 5 nc -zv "$PROXY_HOST" "$PROXY_PORT" &>/dev/null; then echo "✓ 可以连接到代理服务器" else echo "✗ 无法连接到代理服务器" @@ -59,8 +59,43 @@ for info in "${hosts_info[@]}"; do export PASS=$pass ./tgsend.sh "Host:$host, user:$user, 登录失败,请检查!" fi - summary=$summary$(echo -n $msg) -done + echo -n "$msg" +} + +summary="" +if [[ "$LOGINONCE" == "Y" ]]; then + echo "只登录一次模式" + # 计算今天是今年的第几天(1-366) + DAY_OF_YEAR=$(date +%j) + + # 获取服务器数量 + SERVER_COUNT=$(echo "$HOSTS_JSON" | jq '.info | length') + + # 计算今天应该登录哪个服务器(取模运算) + INDEX=$(((DAY_OF_YEAR - 1) % SERVER_COUNT)) + + # 获取对应的服务器配置 + CONFIG=$(echo "$HOSTS_JSON" | jq ".info[$INDEX]") + + HOST=$(echo "$CONFIG" | jq -r '.host') + USERNAME=$(echo "$CONFIG" | jq -r '.username') + PORT=$(echo "$CONFIG" | jq -r '.port') + PASSWORD=$(echo "$CONFIG" | jq -r '.password') + + msg=$(login_server "$USERNAME" "$HOST" "$PORT" "$PASSWORD") + summary=$msg +else + hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) + for info in "${hosts_info[@]}"; do + user=$(echo $info | jq -r ".username") + host=$(echo $info | jq -r ".host") + port=$(echo $info | jq -r ".port") + pass=$(echo $info | jq -r ".password") + + msg=$(login_server "$user" "$host" "$port" "$pass") + summary=$summary$msg + done +fi if [[ "$LOGININFO" == "Y" ]]; then chmod +x ./tgsend.sh From 3be0e90a1eee5f515b8be21b683e499ce99b8048 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Tue, 2 Dec 2025 14:42:12 +0800 Subject: [PATCH 168/210] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/revive.sh b/revive.sh index d73dd85e..d2127507 100644 --- a/revive.sh +++ b/revive.sh @@ -19,14 +19,14 @@ PROXY_PASS=${PROXY_PASS:-null} export SOCKS5_USER="$PROXY_USER" export SOCKS5_PASSWD="$PROXY_PASS" - +msg="" # 登录服务器并执行保活脚本 login_server() { local user=$1 local host=$2 local port=$3 local pass=$4 - local msg="" + msg="" if [[ "$AUTOUPDATE" == "Y" ]]; then script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" @@ -82,7 +82,7 @@ if [[ "$LOGINONCE" == "Y" ]]; then PORT=$(echo "$CONFIG" | jq -r '.port') PASSWORD=$(echo "$CONFIG" | jq -r '.password') - msg=$(login_server "$USERNAME" "$HOST" "$PORT" "$PASSWORD") + ret=$(login_server "$USERNAME" "$HOST" "$PORT" "$PASSWORD") summary=$msg else hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) @@ -92,7 +92,7 @@ else port=$(echo $info | jq -r ".port") pass=$(echo $info | jq -r ".password") - msg=$(login_server "$user" "$host" "$port" "$pass") + ret=$(login_server "$user" "$host" "$port" "$pass") summary=$summary$msg done fi @@ -100,4 +100,5 @@ fi if [[ "$LOGININFO" == "Y" ]]; then chmod +x ./tgsend.sh ./tgsend.sh "$summary" + 咋学史崇德v发23 fi From 99020d2fc5fadf58ef2a51c9eaa0b36b979128c6 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Tue, 2 Dec 2025 14:46:06 +0800 Subject: [PATCH 169/210] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/revive.sh b/revive.sh index d2127507..4cbd6c35 100644 --- a/revive.sh +++ b/revive.sh @@ -100,5 +100,4 @@ fi if [[ "$LOGININFO" == "Y" ]]; then chmod +x ./tgsend.sh ./tgsend.sh "$summary" - 咋学史崇德v发23 fi From b05c23258224ba9824b8bf77a4057ee94effbfea Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Tue, 2 Dec 2025 14:53:54 +0800 Subject: [PATCH 170/210] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive.sh | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/revive.sh b/revive.sh index 4cbd6c35..b06b3fb6 100644 --- a/revive.sh +++ b/revive.sh @@ -19,14 +19,14 @@ PROXY_PASS=${PROXY_PASS:-null} export SOCKS5_USER="$PROXY_USER" export SOCKS5_PASSWD="$PROXY_PASS" -msg="" + # 登录服务器并执行保活脚本 login_server() { local user=$1 local host=$2 local port=$3 local pass=$4 - msg="" + local msg="" if [[ "$AUTOUPDATE" == "Y" ]]; then script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" @@ -35,11 +35,11 @@ login_server() { fi #使用socks5代理进行登录 if [[ "$PROXY_HOST" != "null" ]]; then - echo "测试基础连接..." + echo "测试基础连接..." >&2 if timeout 5 nc -zv "$PROXY_HOST" "$PROXY_PORT" &>/dev/null; then - echo "✓ 可以连接到代理服务器" + echo "✓ 可以连接到代理服务器" >&2 else - echo "✗ 无法连接到代理服务器" + echo "✗ 无法连接到代理服务器" >&2 exit 1 fi output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 -o ProxyCommand="connect -S ${PROXY_HOST}:${PROXY_PORT} %h %p" -p "$port" "$user@$host" "bash -s" <<<"$script") @@ -47,13 +47,13 @@ login_server() { output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") fi - echo "output:$output" + echo "output:$output" >&2 if echo "$output" | grep -q "keepalive.sh"; then - echo "登录成功" + echo "登录成功" >&2 msg="🟢主机 ${host}, 用户 ${user}, 登录成功!\n" else - echo "登录失败" + echo "登录失败" >&2 msg="🔴主机 ${host}, 用户 ${user}, 登录失败!\n" chmod +x ./tgsend.sh export PASS=$pass @@ -82,18 +82,16 @@ if [[ "$LOGINONCE" == "Y" ]]; then PORT=$(echo "$CONFIG" | jq -r '.port') PASSWORD=$(echo "$CONFIG" | jq -r '.password') - ret=$(login_server "$USERNAME" "$HOST" "$PORT" "$PASSWORD") - summary=$msg + summary=$(login_server "$USERNAME" "$HOST" "$PORT" "$PASSWORD") else - hosts_info=($(echo "${HOSTS_JSON}" | jq -c ".info[]")) + mapfile -t hosts_info < <(echo "${HOSTS_JSON}" | jq -c ".info[]") for info in "${hosts_info[@]}"; do - user=$(echo $info | jq -r ".username") - host=$(echo $info | jq -r ".host") - port=$(echo $info | jq -r ".port") - pass=$(echo $info | jq -r ".password") + user=$(echo "$info" | jq -r ".username") + host=$(echo "$info" | jq -r ".host") + port=$(echo "$info" | jq -r ".port") + pass=$(echo "$info" | jq -r ".password") - ret=$(login_server "$user" "$host" "$port" "$pass") - summary=$summary$msg + summary=$summary$(login_server "$user" "$host" "$port" "$pass") done fi From 2c6c80b0cd3b3c2a5baa2652d588f84d4b44a885 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Tue, 2 Dec 2025 21:46:28 +0800 Subject: [PATCH 171/210] reids --- start.sh | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 221 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 292d6f6f..2af5e227 100755 --- a/start.sh +++ b/start.sh @@ -3996,6 +3996,222 @@ setKeepAliveInterval() { fi green "更新成功" } +installRedis() { + local workdir="${installpath}/serv00-play/redis" + if [[ ! -d "$workdir" ]]; then + mkdir -p "$workdir" + fi + # 使用 || 来处理 cd 失败的情况,增加脚本健壮性 + cd "$workdir" || { + red "错误:无法进入工作目录 $workdir" + return 1 + } + + # 步骤 1: 检查 redis.conf,如果不存在则下载 + if [ ! -f "redis.conf" ]; then + yellow "redis.conf 文件不存在,正在从 Redis 官方 GitHub 仓库下载..." + # 使用 curl 下载文件,-fsSL 参数可以在失败时静默处理并支持重定向 + if ! curl -fsSL -o redis.conf https://raw.githubusercontent.com/redis/redis/7.4/redis.conf; then + red "下载 redis.conf 失败!请检查网络连接或稍后重试。" + return 1 + fi + green "redis.conf 下载成功!" + else + yellow "检测到已存在的 redis.conf,将在此基础上进行修改。" + fi + + # 步骤 2: 交互式获取配置信息 + green "----------------------------------------" + loadPort + randomPort tcp redis + if [[ -n "$port" ]]; then + redis_port="$port" + else + red "未输入端口号" + return 1 + fi + + read -r -p "密码 (Password) [留空则禁用密码]: " redis_password + + read -r -p "日志文件路径 (Log file path) [默认: \"\"]: " redis_logfile + + read -r -p "是否允许所有网络接口访问 (全网监听)?(y/n) [默认: n]: " listen_all + listen_all=${listen_all:-n} + green "----------------------------------------" + + # 步骤 3: 根据输入修改配置文件 + yellow "正在根据您的输入修改 redis.conf..." + + # 修改端口 + sed -i "s/^port .*/port ${redis_port}/" redis.conf + + # 修改密码 + if [[ -n "$redis_password" ]]; then + # 如果 requirepass 存在且未被注释,则直接替换 + if grep -q "^requirepass" redis.conf; then + sed -i "s/^requirepass .*/requirepass ${redis_password}/" redis.conf + # 如果 requirepass 存在但被注释,则取消注释并替换 + elif grep -q "^# requirepass" redis.conf; then + sed -i "s/^# requirepass .*/requirepass ${redis_password}/" redis.conf + # 如果不存在,则追加 + else + echo "requirepass ${redis_password}" >>redis.conf + fi + green "✓ 密码已设置" + else + # 如果用户输入为空,则注释掉密码设置 + sed -i 's/^requirepass .*/# requirepass foobared/' redis.conf + yellow "✓ 密码已禁用" + fi + + # 修改日志文件路径 + sed -i "s|^logfile.*|logfile \"${redis_logfile}\"|" redis.conf + green "✓ 日志文件路径已设置" + + # 修改网络监听 + if [[ "$listen_all" == "y" || "$listen_all" == "Y" ]]; then + # 注释掉所有 bind 开头的行,以允许所有 IP 访问 + sed -i 's/^bind /# bind /' redis.conf + green "✓ 已配置为全网监听" + else + # 确保只监听本地回环地址 + sed -i 's/^# bind 127.0.0.1 -::1/bind 127.0.0.1 -::1/' redis.conf + green "✓ 已配置为仅本地监听" + fi + + green "----------------------------------------" + green "redis.conf 配置修改完成!" +} + +startRedis() { + local workdir="${installpath}/serv00-play/redis" + if [[ ! -d "$workdir" ]]; then + red "未安装redis,请先安装!" + return 1 + fi + cd "$workdir" + if checkProcAlive "redis-server"; then + red "redis已启动,请勿重复启动!" + return 1 + fi + echo "正在启动redis..." + screen -dmS myredis-session redis-server ./redis.conf + sleep 2 + if checkProcAlive "redis-server"; then + green "启动成功!" + else + echo "启动失败!" + fi +} +stopRedis() { + local workdir="${installpath}/serv00-play/redis" + if [[ ! -d "$workdir" ]]; then + red "未安装redis,请先安装!" + return 1 + fi + cd "$workdir" + if ! checkProcAlive "redis-server"; then + red "redis未启动!" + return 1 + fi + echo "正在停止redis..." + stopProc "redis-server" + sleep 2 + if ! checkProcAlive "redis-server"; then + green "停止成功!" + else + echo "未能停止,请手动杀进程!" + fi +} + +uninstallRedis() { + local input=$1 + local workdir="${installpath}/serv00-play/redis" + if [[ ! -d "$workdir" ]]; then + red "未安装redis,请先安装!" + return 1 + fi + if [ -z "$input" ]; then + read -p "是否卸载? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" != "y" ]]; then + return 1 + fi + fi + stopRedis + rm -rf "$workdir" + green "卸载成功" +} + +redisManage() { + while true; do + yellow "---------------------" + echo "redis管理:" + echo "服务状态: $(checkProcStatus redis-server)" + echo "1. 安装/修改配置" + echo "2. 启动" + echo "3. 停止" + echo "8. 卸载" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + case $input in + 1) + installRedis + ;; + 2) + startRedis + ;; + 3) + stopRedis + ;; + 8) + uninstallRedis + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu + +} + +devManage() { + if ! checkInstalled "serv00-play"; then + return 1 + fi + while true; do + yellow "---------------------" + echo "开发工具管理:" + echo "1. redis" + echo "0. 退出脚本" + yellow "---------------------" + + read -p "请选择:" input + + case $input in + 1) + redisManage + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu + +} linkAliveStatment() { cat < Date: Tue, 2 Dec 2025 21:51:24 +0800 Subject: [PATCH 172/210] reids --- keepalive.sh | 32 ++++++++++++++++++++++---------- start.sh | 6 +++++- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index 129533e5..f69e55ae 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -287,22 +287,22 @@ fi wx_push_url=$(jq -r ".wxpush_url // empty" config.json) if [[ -z "$wx_push_url" ]]; then - echo "从msg.json获取wxpush_url" - if [[ -e "msg.json" ]]; then - WXPUSH_URL=$(jq -r ".wxpush_url // empty" msg.json) - fi + echo "从msg.json获取wxpush_url" + if [[ -e "msg.json" ]]; then + WXPUSH_URL=$(jq -r ".wxpush_url // empty" msg.json) + fi else - WXPUSH_URL=$wx_push_url + WXPUSH_URL=$wx_push_url fi wx_token=$(jq -r ".wx_token // empty" config.json) if [[ -z "$wx_token" ]]; then - echo "从msg.json获取wx_token" - if [[ -e "msg.json" ]]; then - WX_TOKEN=$(jq -r ".wx_token // empty" msg.json) - fi + echo "从msg.json获取wx_token" + if [[ -e "msg.json" ]]; then + WX_TOKEN=$(jq -r ".wx_token // empty" msg.json) + fi else - WX_TOKEN=$wx_token + WX_TOKEN=$wx_token fi send_type=$(jq -r ".sendtype // empty" config.json) @@ -433,6 +433,18 @@ for obj in "${monitor[@]}"; do msg="wssh 重启成功." fi fi + elif [ "$obj" == "redis-server" ]; then + if ! checkProcAlive redis-server; then + echo "正在启动redis-server..." + cd ${installpath}/serv00-play/redis + nohup ./redis-server ./redis.conf >/dev/null 2>&1 & + sleep 2 + if ! checkProcAlive redis-server; then + msg="redis-server 重启失败." + else + msg="redis-server 重启成功." + fi + fi else continue fi diff --git a/start.sh b/start.sh index 2af5e227..f871ac07 100755 --- a/start.sh +++ b/start.sh @@ -145,6 +145,7 @@ createConfigFile() { echo "5. alist" echo "6. webssh" echo "7. 哪吒面板" + echo "8. redis" echo "88. 暂停所有保活功能" echo "99. 复通所有保活功能(之前有配置的情况下)" echo "0. 返回主菜单" @@ -191,6 +192,9 @@ createConfigFile() { 7) item+=("nezha-dashboard") ;; + 8) + item+=("redis-server") + ;; 88) #delCron backupConfig "config.json" @@ -4095,7 +4099,7 @@ startRedis() { return 1 fi echo "正在启动redis..." - screen -dmS myredis-session redis-server ./redis.conf + nohup redis-server ./redis.conf >/dev/null 2>&1 & sleep 2 if checkProcAlive "redis-server"; then green "启动成功!" From 33a7ebbe0125cdc2c19a772281081b58ee1638a9 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Tue, 2 Dec 2025 21:57:49 +0800 Subject: [PATCH 173/210] reids --- start.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/start.sh b/start.sh index f871ac07..a0b24d73 100755 --- a/start.sh +++ b/start.sh @@ -4047,16 +4047,16 @@ installRedis() { yellow "正在根据您的输入修改 redis.conf..." # 修改端口 - sed -i "s/^port .*/port ${redis_port}/" redis.conf + sed -i '' "s/^port .*/port ${redis_port}/" redis.conf # 修改密码 if [[ -n "$redis_password" ]]; then # 如果 requirepass 存在且未被注释,则直接替换 if grep -q "^requirepass" redis.conf; then - sed -i "s/^requirepass .*/requirepass ${redis_password}/" redis.conf + sed -i '' "s/^requirepass .*/requirepass ${redis_password}/" redis.conf # 如果 requirepass 存在但被注释,则取消注释并替换 elif grep -q "^# requirepass" redis.conf; then - sed -i "s/^# requirepass .*/requirepass ${redis_password}/" redis.conf + sed -i '' "s/^# requirepass .*/requirepass ${redis_password}/" redis.conf # 如果不存在,则追加 else echo "requirepass ${redis_password}" >>redis.conf @@ -4064,22 +4064,22 @@ installRedis() { green "✓ 密码已设置" else # 如果用户输入为空,则注释掉密码设置 - sed -i 's/^requirepass .*/# requirepass foobared/' redis.conf + sed -i '' 's/^requirepass .*/# requirepass foobared/' redis.conf yellow "✓ 密码已禁用" fi # 修改日志文件路径 - sed -i "s|^logfile.*|logfile \"${redis_logfile}\"|" redis.conf + sed -i '' "s|^logfile.*|logfile \"${redis_logfile}\"|" redis.conf green "✓ 日志文件路径已设置" # 修改网络监听 if [[ "$listen_all" == "y" || "$listen_all" == "Y" ]]; then # 注释掉所有 bind 开头的行,以允许所有 IP 访问 - sed -i 's/^bind /# bind /' redis.conf + sed -i '' 's/^bind /# bind /' redis.conf green "✓ 已配置为全网监听" else # 确保只监听本地回环地址 - sed -i 's/^# bind 127.0.0.1 -::1/bind 127.0.0.1 -::1/' redis.conf + sed -i '' 's/^# bind 127.0.0.1 -::1/bind 127.0.0.1 -::1/' redis.conf green "✓ 已配置为仅本地监听" fi From 9a810d2bfb7545d6f53326be5a701329a4f26317 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Wed, 3 Dec 2025 09:28:53 +0800 Subject: [PATCH 174/210] . --- keepalive.sh | 2 +- revive.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keepalive.sh b/keepalive.sh index f69e55ae..529ff9d0 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -239,7 +239,7 @@ if [[ "$autoUp" == "autoupdate" ]]; then autoUpdate fi -echo "Host:$host, user:$user" +#echo "Host:$host, user:$user" cd ${installpath}/serv00-play/ if [[ -n "$autoUp" ]]; then diff --git a/revive.sh b/revive.sh index b06b3fb6..c9eecc8f 100644 --- a/revive.sh +++ b/revive.sh @@ -47,7 +47,7 @@ login_server() { output=$(sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -p "$port" "$user@$host" "bash -s" <<<"$script") fi - echo "output:$output" >&2 + #echo "output:$output" >&2 if echo "$output" | grep -q "keepalive.sh"; then echo "登录成功" >&2 From 282bca218d8d3d4a2c80463e09e6e94a2d41114a Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 10:52:31 +0800 Subject: [PATCH 175/210] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BF=9D=E6=B4=BB?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BE=AE=E4=BF=A1=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/revive.sh b/revive.sh index c9eecc8f..0644a536 100644 --- a/revive.sh +++ b/revive.sh @@ -20,6 +20,20 @@ PROXY_PASS=${PROXY_PASS:-null} export SOCKS5_USER="$PROXY_USER" export SOCKS5_PASSWD="$PROXY_PASS" +sendMsg() { + local msg="$1" + if [ -n "$msg" ]; then + if [ "$SENDTYPE" == "1" ]; then + ./tgsend.sh "$msg" + elif [ "$SENDTYPE" == "2" ]; then + ./wxsend.sh "$msg" + elif [ "$SENDTYPE" == "3" ]; then + ./tgsend.sh "$msg" + ./wxsend.sh "$msg" + fi + fi +} + # 登录服务器并执行保活脚本 login_server() { local user=$1 From dcc06e6fd322b3a8f24e68a012adee33e3838352 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 10:56:59 +0800 Subject: [PATCH 176/210] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BF=9D=E6=B4=BB?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BE=AE=E4=BF=A1=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/revive.sh b/revive.sh index 0644a536..1e49ed96 100644 --- a/revive.sh +++ b/revive.sh @@ -22,6 +22,7 @@ export SOCKS5_PASSWD="$PROXY_PASS" sendMsg() { local msg="$1" + chmod +x ./tgsend.sh ./wxsend.sh if [ -n "$msg" ]; then if [ "$SENDTYPE" == "1" ]; then ./tgsend.sh "$msg" @@ -69,9 +70,8 @@ login_server() { else echo "登录失败" >&2 msg="🔴主机 ${host}, 用户 ${user}, 登录失败!\n" - chmod +x ./tgsend.sh export PASS=$pass - ./tgsend.sh "Host:$host, user:$user, 登录失败,请检查!" + sendMsg "Host:$host, user:$user, 登录失败,请检查!" fi echo -n "$msg" } @@ -110,6 +110,5 @@ else fi if [[ "$LOGININFO" == "Y" ]]; then - chmod +x ./tgsend.sh - ./tgsend.sh "$summary" + sendMsg "$summary" fi From fd5d8c7f270de55ac05b9d91df621357e123f768 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 10:59:25 +0800 Subject: [PATCH 177/210] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BF=9D=E6=B4=BB?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BE=AE=E4=BF=A1=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/revive.sh b/revive.sh index 1e49ed96..1bd15e87 100644 --- a/revive.sh +++ b/revive.sh @@ -10,7 +10,7 @@ WX_TOKEN=${WX_TOKEN:-null} BUTTON_URL=${BUTTON_URL:-null} LOGININFO=${LOGININFO:-N} LOGINONCE=${LOGINONCE:-N} -export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL +export TELEGRAM_TOKEN TELEGRAM_USERID BUTTON_URL WXSENDKEY WXPUSH_URL WX_TOKEN PROXY_HOST=${PROXY_HOST:-null} PROXY_PORT=${PROXY_PORT:-null} From 59141ca2fb8bf2a4a1ee73156b38091997178a26 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 17:08:59 +0800 Subject: [PATCH 178/210] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=BD=91=E7=AB=99?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/game.html | 1012 +++++++++++++++++++++++++++++++++++ start.sh | 86 ++- 2 files changed, 1094 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/game.html diff --git a/.github/workflows/game.html b/.github/workflows/game.html new file mode 100644 index 00000000..a6285772 --- /dev/null +++ b/.github/workflows/game.html @@ -0,0 +1,1012 @@ + + + + + + 游戏殿堂 - 游戏资讯与社区 + + + + +
+ +
+ + + + + +
+ + +
+
+
+
+

次世代游戏体验

+

探索最新发布的AAA大作,感受前所未有的视觉冲击和沉浸式游戏体验。从开放世界到竞技对战,总有一款适合你。

+ 立即体验 +
+
+ +
+
+

独立游戏精选

+

发现那些充满创意和艺术感的独立游戏作品。这些游戏或许没有庞大的预算,却有着独特的玩法和感人的故事。

+ 发现独立游戏 +
+
+ +
+
+

竞技游戏联赛

+

加入全球玩家的竞技场,体验紧张刺激的电竞赛事。从新手到职业选手,这里有你展示实力的舞台。

+ 加入比赛 +
+
+ +
+
+
+
+
+
+
+ + +
+
+

热门游戏推荐

+
+ + + + + +
+
+ +
+ +
+ 星穹史诗 +
+
+
+

星穹史诗

+
+ 2023年发布 + 1200万+ +
+
+
+ 9.2 +
+
+ +

在广阔的宇宙中展开史诗般的冒险,探索未知星球,与外星种族建立联系,揭开古老文明的神秘面纱。

+ +
+ 角色扮演 + 开放世界 + 科幻 +
+ +
+
¥ 298
+ 购买 +
+
+
+ + +
+ 暗影行动 +
+
+
+

暗影行动

+
+ 2022年发布 + 850万+ +
+
+
+ 8.7 +
+
+ +

第一人称战术射击游戏,带领精英小队执行高风险任务。体验真实的武器系统和团队协作玩法。

+ +
+ 第一人称射击 + 战术 + 多人合作 +
+ +
+
¥ 198
+ 购买 +
+
+
+ + +
+ 帝国纪元 +
+
+
+

帝国纪元

+
+ 2023年发布 + 560万+ +
+
+
+ 9.0 +
+
+ +

建立你的帝国,从石器时代发展到太空时代。管理资源,发展科技,征服敌对文明,成为历史上最伟大的统治者。

+ +
+ 策略 + 模拟 + 历史 +
+ +
+
¥ 248
+ 购买 +
+
+
+ + +
+ 心灵之旅 +
+
+
+

心灵之旅

+
+ 2021年发布 + 320万+ +
+
+
+ 9.5 +
+
+ +

一段关于生命、死亡和情感的动人旅程。通过精美的艺术风格和感人的故事,探索人类情感的深度。

+ +
+ 独立游戏 + 冒险 + 情感叙事 +
+ +
+
¥ 88
+ 购买 +
+
+
+ + +
+ 极限竞速 +
+
+
+

极限竞速

+
+ 2023年发布 + 750万+ +
+
+
+ 8.9 +
+
+ +

体验最真实的赛车模拟,驾驶数百款授权车辆在全球知名赛道上驰骋。从街头赛到专业赛道,满足所有赛车爱好者的需求。

+ +
+ 竞速 + 模拟 + 体育 +
+ +
+
¥ 228
+ 购买 +
+
+
+ + +
+ 魔法学院 +
+
+
+

魔法学院

+
+ 2022年发布 + 410万+ +
+
+
+ 8.5 +
+
+ +

在一所魔法学校中,学习各种魔法咒语,解开古老谜题,与同学建立友谊,共同对抗威胁魔法世界的黑暗力量。

+ +
+ 角色扮演 + 魔法 + 冒险 +
+ +
+
¥ 168
+ 购买 +
+
+
+
+
+ + +
+
+

最新游戏资讯

+
+ +
Date: Fri, 5 Dec 2025 17:13:03 +0800 Subject: [PATCH 179/210] =?UTF-8?q?=E5=A2=9E=E7=BD=91=E7=AB=99=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {.github/workflows => domains-support}/game.html | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {.github/workflows => domains-support}/game.html (100%) diff --git a/.github/workflows/game.html b/domains-support/game.html similarity index 100% rename from .github/workflows/game.html rename to domains-support/game.html From 7d9e118ced89e06af0bf25588444b86bd102a6d0 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 17:13:55 +0800 Subject: [PATCH 180/210] =?UTF-8?q?=E5=A2=9E=E7=BD=91=E7=AB=99=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- domains-support/{ => websites}/game.html | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename domains-support/{ => websites}/game.html (100%) diff --git a/domains-support/game.html b/domains-support/websites/game.html similarity index 100% rename from domains-support/game.html rename to domains-support/websites/game.html From b6071f804cbca0972226a45f2f44d5218879df05 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 17:30:20 +0800 Subject: [PATCH 181/210] =?UTF-8?q?=E5=A2=9E=E7=BD=91=E7=AB=99=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/start.sh b/start.sh index 96ac49c3..a80fa4a6 100755 --- a/start.sh +++ b/start.sh @@ -3511,7 +3511,7 @@ batchAddDomains() { # Get Zone ID using the domain itself local zone_id=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=${domain}" \ -H "X-Auth-Email: ${cf_email}" \ - -H "Authorization: Bearer ${cf_api_token}" \ + -H "X-Auth-Key: ${cf_api_token}" \ -H "Content-Type: application/json" | jq -r '.result[0].id') if [[ -z "$zone_id" || "$zone_id" == "null" ]]; then @@ -3520,7 +3520,7 @@ batchAddDomains() { # Check for existing A record local existing_record=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records?type=A&name=${domain}" \ -H "X-Auth-Email: ${cf_email}" \ - -H "Authorization: Bearer ${cf_api_token}" \ + -H "X-Auth-Key: ${cf_api_token}" \ -H "Content-Type: application/json" | jq -r '.result[] | select(.content == "'"$webIp"'") | .id') if [[ -n "$existing_record" ]]; then @@ -3529,7 +3529,7 @@ batchAddDomains() { # Create new A record local create_record_response=$(curl -s -X POST "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records" \ -H "X-Auth-Email: ${cf_email}" \ - -H "Authorization: Bearer ${cf_api_token}" \ + -H "X-Auth-Key: ${cf_api_token}" \ -H "Content-Type: application/json" \ --data '{"type":"A","name":"'"$domain"'","content":"'"$webIp"'","ttl":1,"proxied":false}') From e23a2db6bbf13d437a12de56a0077a14551b13b2 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 18:09:45 +0800 Subject: [PATCH 182/210] =?UTF-8?q?=E5=A2=9E=E7=BD=91=E7=AB=99=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index a80fa4a6..87c6e14d 100755 --- a/start.sh +++ b/start.sh @@ -2240,7 +2240,7 @@ applyLE() { return 1 fi fi - inCron="0" + local inCron="0" if crontab -l | grep -F "$l_domain" >/dev/null 2>&1; then inCron="1" if [[ -z "$nointeraction" ]]; then @@ -2274,6 +2274,7 @@ applyLE() { resp=$(devil ssl www add $l_webip le le $l_domain) if [[ ! "$resp" =~ .*succesfully.*$ ]]; then red "申请ssl证书失败!$resp" + echo "inCron: $inCron" if [[ "$inCron" == "0" ]]; then if [[ -z "$nointeraction" ]]; then read -p "是否配置定时任务自动申请SSL证书? [y/n] [n]:" input From f7702b328786e2a35d3be027119b4c2869eda6d0 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 18:25:27 +0800 Subject: [PATCH 183/210] =?UTF-8?q?=E5=A2=9E=E7=BD=91=E7=AB=99=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/start.sh b/start.sh index 87c6e14d..05dfc301 100755 --- a/start.sh +++ b/start.sh @@ -3518,16 +3518,29 @@ batchAddDomains() { if [[ -z "$zone_id" || "$zone_id" == "null" ]]; then red "无法获取域名 $domain 的 Zone ID,请检查域名是否已添加到您的 Cloudflare 账户。" else - # Check for existing A record - local existing_record=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records?type=A&name=${domain}" \ + # Check for an existing A record for the exact domain name. + local existing_record_id=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records?type=A&name=${domain}" \ -H "X-Auth-Email: ${cf_email}" \ -H "X-Auth-Key: ${cf_api_token}" \ - -H "Content-Type: application/json" | jq -r '.result[] | select(.content == "'"$webIp"'") | .id') + -H "Content-Type: application/json" | jq -r --arg domain "$domain" '.result[] | select(.name == $domain) | .id') - if [[ -n "$existing_record" ]]; then - green "✓ 域名 $domain 已存在指向 $webIp 的 A 记录,跳过。" + if [[ -n "$existing_record_id" && "$existing_record_id" != "null" ]]; then + # Update existing A record + yellow "✓ 域名 $domain 已存在 A 记录,正在更新 IP 地址为 $webIp..." + local update_record_response=$(curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records/${existing_record_id}" \ + -H "X-Auth-Email: ${cf_email}" \ + -H "X-Auth-Key: ${cf_api_token}" \ + -H "Content-Type: application/json" \ + --data '{"type":"A","name":"'"$domain"'","content":"'"$webIp"'","ttl":1,"proxied":false}') + + if [[ $(echo "$update_record_response" | jq -r '.success') == "true" ]]; then + green "✓ 成功将域名 $domain 的 A 记录更新为 $webIp。" + else + red "更新域名 $domain 的 A 记录失败: $(echo "$update_record_response" | jq -r '.errors[0].message')" + fi else # Create new A record + yellow "正在为 $domain 创建新的 A 记录..." local create_record_response=$(curl -s -X POST "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records" \ -H "X-Auth-Email: ${cf_email}" \ -H "X-Auth-Key: ${cf_api_token}" \ From e52471e7ea7463869ff4c45bfee3825a6ff181e4 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 18:40:09 +0800 Subject: [PATCH 184/210] =?UTF-8?q?=E5=A2=9E=E7=BD=91=E7=AB=99=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 05dfc301..b45b8425 100755 --- a/start.sh +++ b/start.sh @@ -2274,7 +2274,7 @@ applyLE() { resp=$(devil ssl www add $l_webip le le $l_domain) if [[ ! "$resp" =~ .*succesfully.*$ ]]; then red "申请ssl证书失败!$resp" - echo "inCron: $inCron" + #echo "inCron: $inCron" if [[ "$inCron" == "0" ]]; then if [[ -z "$nointeraction" ]]; then read -p "是否配置定时任务自动申请SSL证书? [y/n] [n]:" input From c4bc0c819564b38c0fb4f065d6b0c3f50d590eb4 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 19:44:02 +0800 Subject: [PATCH 185/210] =?UTF-8?q?=E5=A2=9E=E7=BD=91=E7=AB=99=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/start.sh b/start.sh index b45b8425..b2117bee 100755 --- a/start.sh +++ b/start.sh @@ -3588,6 +3588,9 @@ batchAddDomains() { cp websites/resume.html "$domainPath/index.html" ;; 5) + cp websites/game.html "$domainPath/index.html" + ;; + 6) cp "$custom_file" "$domainPath/index.html" ;; *) From 4eea2afd714ac66c230c33a01b2ab586598b939e Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Fri, 5 Dec 2025 23:16:02 +0800 Subject: [PATCH 186/210] =?UTF-8?q?=E5=A2=9E=E7=BD=91=E7=AB=99=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/start.sh b/start.sh index b2117bee..944013e8 100755 --- a/start.sh +++ b/start.sh @@ -2211,7 +2211,13 @@ cronLE() { fi fi crontab -l >le.cron - echo "0 */$tm * * * $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron + if [[ $tm -eq 1 ]]; then + #每小时执行一次 + echo "0 * * * * $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron + else + #每tm小时执行一次 + echo "0 */$tm * * * $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron + fi crontab le.cron >/dev/null 2>&1 rm -rf le.cron echo "设置完毕!" @@ -3064,7 +3070,7 @@ installBurnReading() { if [[ "$input" == "y" ]]; then echo "正在申请证书,请等待..." if ! applyLE $domain $webIp; then - echo "申请证书失败!" + echo "申请证书��败!" return 1 fi fi @@ -3558,7 +3564,7 @@ batchAddDomains() { red "缺少 WebIP 或 Cloudflare 凭证,无法自动配置 DNS。" fi fi - + sleep 5 if ! applyLE "$domain" "$webIp" "y"; then red "申请证书失败: $domain" fi From cfabb7e4bb71191017a5f37b3ce19b68daa959b9 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 6 Dec 2025 01:16:02 +0800 Subject: [PATCH 187/210] =?UTF-8?q?=E7=94=9F=E6=88=90=E8=AF=81=E4=B9=A6?= =?UTF-8?q?=E7=9A=84=E4=BB=BB=E5=8A=A1=E9=94=99=E5=BC=80=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/start.sh b/start.sh index 944013e8..234a2fa2 100755 --- a/start.sh +++ b/start.sh @@ -2211,12 +2211,14 @@ cronLE() { fi fi crontab -l >le.cron + # 生成0-59的随机数 + local mm=$((RANDOM % 60)) if [[ $tm -eq 1 ]]; then #每小时执行一次 - echo "0 * * * * $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron + echo "$mm * * * * bash $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron else #每tm小时执行一次 - echo "0 */$tm * * * $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron + echo "$mm */$tm * * * bash $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron fi crontab le.cron >/dev/null 2>&1 rm -rf le.cron From 7b7e594f2809dab130e9b77a09e8d42210af9051 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 6 Dec 2025 11:03:24 +0800 Subject: [PATCH 188/210] =?UTF-8?q?fixed:=E7=99=BB=E5=BD=95=E4=B8=8D?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/revive.sh b/revive.sh index 1bd15e87..7dd045b2 100644 --- a/revive.sh +++ b/revive.sh @@ -44,9 +44,9 @@ login_server() { local msg="" if [[ "$AUTOUPDATE" == "Y" ]]; then - script="/home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" + script="bash /home/$user/serv00-play/keepalive.sh autoupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" else - script="/home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" + script="bash /home/$user/serv00-play/keepalive.sh noupdate ${SENDTYPE} \"${TELEGRAM_TOKEN}\" \"${TELEGRAM_USERID}\" \"${WXSENDKEY}\" \"${BUTTON_URL}\" \"${pass}\" \"${WXPUSH_URL}\" \"${WX_TOKEN}\"" fi #使用socks5代理进行登录 if [[ "$PROXY_HOST" != "null" ]]; then From e8d09e2bb7fc8d7db6f9bcb5dde865eca97d5726 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 6 Dec 2025 11:42:49 +0800 Subject: [PATCH 189/210] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index a411a740..f720c764 100644 --- a/README.md +++ b/README.md @@ -15,20 +15,24 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st ## 变量说明 -| 变量名 | 示例 | 备注 | -| --------------- | ------ | -------------------------------------------------------------------------------- | -| HOSTS_JSON | 见示例 | 可存放 n 个服务器信息 (必选) | -| TELEGRAM_TOKEN | 略 | telegram 机器人的 token (发送 TG 消息必选) | -| TELEGRAM_USERID | 略 | 待通知的 teltegram 用户 ID (发送 TG 消息必选) | -| ~~WXSENDKEY~~ | ~~略~~ | ~~server 酱的 sendkey,用于接收微信消息 (发送微信消息必选)~~ | -| WXPUSH_URL | 略 | [wxpush](https://github.com/frankiejun/wxpush)项目的请求url | -| WX_TOKEN | 略 | [wxpush](https://github.com/frankiejun/wxpush)项目的API_TOKEN | -| SENDTYPE | 1 | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | -| BUTTON_URL | 略 | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选),支持#HOST,#USER,#PASS 等变量。 | -| AUTOUPDATE | Y/N | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | -| LOGININFO | Y/N | 在 variable 变量中设置(默认为 N),Y:发送登录汇总消息 N:只在登录失败时发送 | -| LOGINONCE | Y/N | 在 variable 变量中设置(默认为 N),Y:每天只登录一个账号 N:每天登录所有账号送 | -| TOKEN | 123456 | 网页保活(keepalive)的密钥(必选) | +| 变量名 | 示例 | 是否必须 | 变量类型 | 备注 | +| --------------- | ----------- | -------- | ---------- | -------------------------------------------------------------------------------- | +| HOSTS_JSON | 见示例 | ✅ | secrets | 可存放 n 个服务器信息 (必选) | +| TELEGRAM_TOKEN | 略 | ❌ | secrets | telegram 机器人的 token (发送 TG 消息必选) | +| TELEGRAM_USERID | 略 | ❌ | secrets | 待通知的 teltegram 用户 ID (发送 TG 消息必选) | +| ~~WXSENDKEY~~ | ~~略~~ | ❌ | secrets | ~~server 酱的 sendkey,用于接收微信消息 (发送微信消息必选)~~ | +| WXPUSH_URL | 略 | ❌ | secrets | [wxpush](https://github.com/frankiejun/wxpush)项目的请求url | +| WX_TOKEN | 略 | ❌ | secrets | [wxpush](https://github.com/frankiejun/wxpush)项目的API_TOKEN | +| SENDTYPE | 1 | ❌ | secrets | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | +| BUTTON_URL | 略 | ❌ | secrets | 设置 TG 推送消息中的按钮链接 (发送 TG 消息可选),支持#HOST,#USER,#PASS 等变量。 | +| AUTOUPDATE | Y/N | ❌ | variable | 设置是否自动更新服务器上的代码,设置在 variable 变量中,值为 Y/N(默认: Y) | +| LOGININFO | Y/N | ❌ | variable | 在 variable 变量中设置(默认为 N),Y:发送登录汇总消息 N:只在登录失败时发送 | +| LOGINONCE | Y/N | ❌ | variable | 在 variable 变量中设置(默认为 N),Y:每天只登录一个账号 N:每天登录所有账号送 | +| TOKEN | 123456 | ❌ | secrets | 网页保活(keepalive)的密钥(必选) | +| PROXY_HOST | 127.0.0.1 | ❌ | secrets | 代理服务器地址 (可选) | +| PROXY_PORT | 1080 | ❌ | secrets | 代理服务器端口 (可选) | +| PROXY_USER | user | ❌ | secrets | 代理服务器用户名 (可选) | +| PROXY_PASS | password | ❌ | secrets | 代理服务器密码 (可选) | 各主机保活时可不必输入消息通知参数,由 github 同一配置参数。 From bf1543431cde80d313b61d9da84cf15d64a3de8b Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 6 Dec 2025 11:43:48 +0800 Subject: [PATCH 190/210] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f720c764..189f1d60 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ bash <(curl -Ls https://raw.githubusercontent.com/frankiejun/serv00-play/main/st | HOSTS_JSON | 见示例 | ✅ | secrets | 可存放 n 个服务器信息 (必选) | | TELEGRAM_TOKEN | 略 | ❌ | secrets | telegram 机器人的 token (发送 TG 消息必选) | | TELEGRAM_USERID | 略 | ❌ | secrets | 待通知的 teltegram 用户 ID (发送 TG 消息必选) | -| ~~WXSENDKEY~~ | ~~略~~ | ❌ | secrets | ~~server 酱的 sendkey,用于接收微信消息 (发送微信消息必选)~~ | +| ~~WXSENDKEY~~ | ~~略~~ | ~~❌~~ | ~~secrets~~ | ~~server 酱的 sendkey,用于接收微信消息 (发送微信消息必选)~~ | | WXPUSH_URL | 略 | ❌ | secrets | [wxpush](https://github.com/frankiejun/wxpush)项目的请求url | | WX_TOKEN | 略 | ❌ | secrets | [wxpush](https://github.com/frankiejun/wxpush)项目的API_TOKEN | | SENDTYPE | 1 | ❌ | secrets | 选择推送方式,1.Telegram, 2.微信, 3.都有 (发送消息必选) | From 8e56fbce181cfa972f37d65d15eb0485169edc74 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 6 Dec 2025 23:52:48 +0800 Subject: [PATCH 191/210] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=9F=A5=E8=AF=A2=E6=94=AF=E6=8C=81hostuno?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/utils.sh b/utils.sh index cdb453ad..328f4c5b 100644 --- a/utils.sh +++ b/utils.sh @@ -186,11 +186,12 @@ get_webip() { # 初始化最终 IP 变量 local final_ip="$(devil vhost list | grep web | awk '{print $1}')" - + local hostmain=$(getDoMain) + hostmain="${hostmain%.com}" # 遍历主机名称数组 for host in "${hosts[@]}"; do # 获取 API 返回的数据 - local response=$(curl -s "${baseurl}/api/getip?host=$host") + local response=$(curl -s "${baseurl}/api/getip?host=$host&type=$hostmain") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then @@ -227,10 +228,12 @@ get_ip() { # 初始化最终 IP 变量 local final_ip="$(curl -s icanhazip.com)" + local hostmain=$(getDoMain) + hostmain="${hostmain%.com}" # 遍历主机名称数组 for host in "${hosts[@]}"; do # 获取 API 返回的数据 - local response=$(curl -s "${baseurl}/api/getip?host=$host") + local response=$(curl -s "${baseurl}/api/getip?host=$host&type=$hostmain") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then @@ -755,13 +758,14 @@ show_ip_status() { local hostname=$(hostname) local host_number=$(echo "$hostname" | awk -F'[s.]' '{print $2}') local hosts=("cache${host_number}.$(getDoMain)" "web${host_number}.$(getDoMain)" "$hostname") - + local hostmain=$(getDoMain) + hostmain="${hostmain%.com}" # 遍历主机名称数组 local i=0 for host in "${hosts[@]}"; do ((i++)) # 获取 API 返回的数据 - local response=$(curl -s "${baseurl}/api/getip?host=$host") + local response=$(curl -s "${baseurl}/api/getip?host=$host&type=$hostmain") # 检查返回的结果是否包含 "not found" if [[ "$response" =~ "not found" ]]; then From fc30f8dd284e43e87d3bec5466890cfc46a63128 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Tue, 9 Dec 2025 22:19:40 +0800 Subject: [PATCH 192/210] =?UTF-8?q?fixed:=E7=94=B3=E8=AF=B7=E8=AF=81?= =?UTF-8?q?=E4=B9=A6=E5=9F=9F=E5=90=8D=E6=97=A0=E6=B3=95=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E5=9F=9F=E5=90=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/start.sh b/start.sh index 234a2fa2..e9262a5a 100755 --- a/start.sh +++ b/start.sh @@ -2241,7 +2241,7 @@ applyLE() { #echo "domain=$l_domain, webip=$l_webip, nointeraction=$nointeraction" if [[ -z "$l_domain" ]]; then - read -p "请输入待申请证书的域名:" domain + read -p "请输入待申请证书的域名:" l_domain l_domain=${l_domain:-""} if [[ -z "$l_domain" ]]; then red "域名不能为空" @@ -3070,7 +3070,7 @@ installBurnReading() { read -p "是否申请证书? [y/n] [n]:" input input=${input:-'n'} if [[ "$input" == "y" ]]; then - echo "正在申请证书,请等待..." + echo "正在申请证书,请���待..." if ! applyLE $domain $webIp; then echo "申请证书��败!" return 1 From ab651f69798dc9fede5f6502f3695efd51f351e2 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Tue, 9 Dec 2025 22:24:54 +0800 Subject: [PATCH 193/210] =?UTF-8?q?fixed:=E7=94=B3=E8=AF=B7=E8=AF=81?= =?UTF-8?q?=E4=B9=A6=E5=9F=9F=E5=90=8D=E6=97=A0=E6=B3=95=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E5=9F=9F=E5=90=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/start.sh b/start.sh index e9262a5a..c449cff8 100755 --- a/start.sh +++ b/start.sh @@ -2195,7 +2195,8 @@ portServ() { } cronLE() { - local nointeraction=$1 + local l_domain=$1 + local nointeraction=$2 if [[ -n "$nointeraction" ]]; then tm=1 else @@ -2215,10 +2216,10 @@ cronLE() { local mm=$((RANDOM % 60)) if [[ $tm -eq 1 ]]; then #每小时执行一次 - echo "$mm * * * * bash $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron + echo "$mm * * * * bash $workpath/cronSSL.sh $l_domain > /dev/null 2>&1 " >>le.cron else #每tm小时执行一次 - echo "$mm */$tm * * * bash $workpath/cronSSL.sh $domain > /dev/null 2>&1 " >>le.cron + echo "$mm */$tm * * * bash $workpath/cronSSL.sh $l_domain > /dev/null 2>&1 " >>le.cron fi crontab le.cron >/dev/null 2>&1 rm -rf le.cron @@ -2292,9 +2293,9 @@ applyLE() { fi if [[ "$input" == "y" ]]; then if [[ -z "$nointeraction" ]]; then - cronLE + cronLE $l_domain else - cronLE $nointeraction + cronLE $l_domain $nointeraction fi fi fi From 0a5f010e16ad88cc22a5cf9571b299ed3cb53207 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Wed, 10 Dec 2025 17:16:29 +0800 Subject: [PATCH 194/210] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=B8=85=E7=90=86?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E8=BF=9B=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/keepalive.sh b/keepalive.sh index 529ff9d0..ec31a733 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -61,6 +61,26 @@ sendMsg() { fi } +cleanUselessProc() { + # 获取域名列表 + local l_domains=$(ps aux | awk '{ print $11 $14}' | grep node | awk -F: '{gsub(/^[ \t]+|[ \t]+$/, "", $2); print $2}') + + echo "开始检查无用进程..." + + # 直接使用devil列表进行查找 + for domain in $l_domains; do + echo "检查域名: $domain" + + # 在devil列表输出中查找包含该域名的行 + result=$(devil www list | grep -w "$domain") + + if [ -z "$result" ]; then + echo "发现无用进程,准备删除: $domain" + pgrep "$domain" | xargs kill + fi + done +} + checkResetCron() { echo "run checkResetCron" local msg="" @@ -464,6 +484,6 @@ if [[ "$autoUpdateHyIP" == "Y" ]]; then fi devil info account &>/dev/null - +cleanUselessProc # 清理锁文件 cleanup From 9bb83d772f7a7d756467cf99ae27daafeb8f5b06 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Thu, 11 Dec 2025 12:09:37 +0800 Subject: [PATCH 195/210] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=B8=85=E7=90=86?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E8=BF=9B=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keepalive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keepalive.sh b/keepalive.sh index ec31a733..e13de23c 100644 --- a/keepalive.sh +++ b/keepalive.sh @@ -76,7 +76,7 @@ cleanUselessProc() { if [ -z "$result" ]; then echo "发现无用进程,准备删除: $domain" - pgrep "$domain" | xargs kill + pgrep -f "$domain" | xargs kill fi done } From 162180f51feab1273b9b611b9f2947a2093e902b Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Mon, 15 Dec 2025 21:03:22 +0800 Subject: [PATCH 196/210] skin --- start.sh | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 82 insertions(+), 8 deletions(-) diff --git a/start.sh b/start.sh index c449cff8..9184bb58 100755 --- a/start.sh +++ b/start.sh @@ -2922,11 +2922,48 @@ installWxPushSkin() { return 1 fi - if [ -e "./tmp/index.html" ]; then - mv ./tmp/index.html index.html - echo "已安装到 $domainPath/index.html" + # 遍历tmp目录中的所有子目录并显示给用户选择 + echo "请选择要安装的皮肤主题:" + local dir_count=0 + local dir_array=() + + # 查找tmp目录下的所有子目录 + for dir in tmp/*/; do + if [ -d "$dir" ]; then + dir_count=$((dir_count + 1)) + # 获取目录名(去掉路径) + dir_name=$(basename "$dir") + dir_array+=("$dir_name") + echo "$dir_count. $dir_name" + fi + done + + if [ $dir_count -eq 0 ]; then + echo "未找到任何皮肤主题目录!" + rm -rf ./tmp + return 1 + fi + + # 用户选择 + while true; do + read -p "请输入要安装的主题编号 (1-$dir_count): " choice + if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -ge 1 ] && [ "$choice" -le $dir_count ]; then + break + else + echo "无效输入,请输入 1 到 $dir_count 之间的数字" + fi + done + + # 获取用户选择的目录 + selected_dir="tmp/${dir_array[$((choice-1))]}" + + # 检查所选目录中是否有index.html文件 + if [ -e "$selected_dir/index.html" ]; then + mv "$selected_dir/index.html" index.html + echo "已安装 $selected_dir 主题到 $domainPath/index.html" else - echo "下载失败!" + echo "所选主题目录中没有找到index.html文件!" + rm -rf ./tmp return 1 fi rm -rf ./tmp @@ -2956,11 +2993,48 @@ updateWxPushSkin() { return 1 fi - if [ -e "./tmp/index.html" ]; then - mv ./tmp/index.html index.html - echo "已安装到 $domainPath/index.html" + # 遍历tmp目录中的所有子目录并显示给用户选择 + echo "请选择要更新的皮肤主题:" + local dir_count=0 + local dir_array=() + + # 查找tmp目录下的所有子目录 + for dir in tmp/*/; do + if [ -d "$dir" ]; then + dir_count=$((dir_count + 1)) + # 获取目录名(去掉路径) + dir_name=$(basename "$dir") + dir_array+=("$dir_name") + echo "$dir_count. $dir_name" + fi + done + + if [ $dir_count -eq 0 ]; then + echo "未找到任何皮肤主题目录!" + rm -rf ./tmp + return 1 + fi + + # 用户选择 + while true; do + read -p "请输入要更新的主题编号 (1-$dir_count): " choice + if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -ge 1 ] && [ "$choice" -le $dir_count ]; then + break + else + echo "无效输入,请输入 1 到 $dir_count 之间的数字" + fi + done + + # 获取用户选择的目录 + selected_dir="tmp/${dir_array[$((choice-1))]}" + + # 检查所选目录中是否有index.html文件 + if [ -e "$selected_dir/index.html" ]; then + mv "$selected_dir/index.html" index.html + echo "已更新 $selected_dir 主题到 $domainPath/index.html" else - echo "下载失败!" + echo "所选主题目录中没有找到index.html文件!" + rm -rf ./tmp return 1 fi rm -rf ./tmp From 2bc014006c1790359d99cbe69fff8401c5032c8c Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Mon, 15 Dec 2025 21:10:18 +0800 Subject: [PATCH 197/210] skin --- start.sh | 2 +- utils.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/start.sh b/start.sh index 9184bb58..2d608980 100755 --- a/start.sh +++ b/start.sh @@ -4556,4 +4556,4 @@ elif [ "$1" == "--install" ]; then exit 0 else showMenu -fi +fi \ No newline at end of file diff --git a/utils.sh b/utils.sh index 328f4c5b..e97c5680 100644 --- a/utils.sh +++ b/utils.sh @@ -649,7 +649,9 @@ download_allcode_from_github_release() { case "${repository}-${latest_version}.zip" in *.zip) unzip -o "${repository}-${latest_version}.zip" -d tmp - mv "tmp/${target_dir}/"* tmp + # 使用cp命令替代mv命令,避免"Directory not empty"错误 + cp -r "tmp/${target_dir}/"* tmp/ + rm -rf "tmp/${target_dir}" ;; *.tar.gz) tar -xzf "${repository}-${latest_version}.tar.gz" --xform="s|^[^/]*|tmp|" From 7afdaaa40e84d5cd0b1ead67d6ac5da72b034ccf Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Thu, 25 Dec 2025 15:06:24 +0800 Subject: [PATCH 198/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9C=A3=E8=AF=9E?= =?UTF-8?q?=E8=8A=82=E7=BD=91=E7=AB=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- domains-support/websites/christmas.html | 265 ++++++++++++++++++++++++ start.sh | 39 ++-- 2 files changed, 289 insertions(+), 15 deletions(-) create mode 100644 domains-support/websites/christmas.html diff --git a/domains-support/websites/christmas.html b/domains-support/websites/christmas.html new file mode 100644 index 00000000..7f473137 --- /dev/null +++ b/domains-support/websites/christmas.html @@ -0,0 +1,265 @@ + + + + + + 圣诞快乐 - 暖心贺卡 + + + + + + +
+ +
+ 🎵 +
+ +
+ 🛷🦌🎅 +
+ +
+

MERRY CHRISTMAS

+ +
+

愿你的圣诞充满温馨与喜悦

+

在这个繁星闪烁的夜晚,所有的愿望都能成真 ✨

+
+ +
+
🧦
+
🎁
+
🎄
+
🎁
+
🧦
+
+
+ + + + \ No newline at end of file diff --git a/start.sh b/start.sh index 2d608980..142cefa3 100755 --- a/start.sh +++ b/start.sh @@ -2926,7 +2926,7 @@ installWxPushSkin() { echo "请选择要安装的皮肤主题:" local dir_count=0 local dir_array=() - + # 查找tmp目录下的所有子目录 for dir in tmp/*/; do if [ -d "$dir" ]; then @@ -2955,8 +2955,8 @@ installWxPushSkin() { done # 获取用户选择的目录 - selected_dir="tmp/${dir_array[$((choice-1))]}" - + selected_dir="tmp/${dir_array[$((choice - 1))]}" + # 检查所选目录中是否有index.html文件 if [ -e "$selected_dir/index.html" ]; then mv "$selected_dir/index.html" index.html @@ -2997,7 +2997,7 @@ updateWxPushSkin() { echo "请选择要更新的皮肤主题:" local dir_count=0 local dir_array=() - + # 查找tmp目录下的所有子目录 for dir in tmp/*/; do if [ -d "$dir" ]; then @@ -3026,8 +3026,8 @@ updateWxPushSkin() { done # 获取用户选择的目录 - selected_dir="tmp/${dir_array[$((choice-1))]}" - + selected_dir="tmp/${dir_array[$((choice - 1))]}" + # 检查所选目录中是否有index.html文件 if [ -e "$selected_dir/index.html" ]; then mv "$selected_dir/index.html" index.html @@ -3541,13 +3541,14 @@ batchAddDomains() { echo "3. 德一教育系统后台" echo "4. 李明的英文简历" echo "5. 游戏殿堂" - echo "6. 以上随机选择" - echo "7. 自定义网站" + echo "6. 圣诞节贺卡" + echo "98. 以上随机选择" + echo "99. 自定义网站" read -p "请选择建站样式(默认: 1): " style_choice style_choice=${style_choice:-1} local custom_file="" - if [[ "$style_choice" == "7" ]]; then + if [[ "$style_choice" == "99" ]]; then read -p "请输入自定义网站HTML文件路径: " custom_file if [[ ! -f "$custom_file" ]]; then red "自定义HTML文件不存在,请检查路径!" @@ -3652,8 +3653,8 @@ batchAddDomains() { fi local final_style_choice="$style_choice" - if [[ "$final_style_choice" == "6" ]]; then - final_style_choice=$((RANDOM % 5 + 1)) + if [[ "$final_style_choice" == "98" ]]; then + final_style_choice=$((RANDOM % 6 + 1)) fi case "$final_style_choice" in @@ -3674,8 +3675,12 @@ batchAddDomains() { cp websites/game.html "$domainPath/index.html" ;; 6) + cp websites/christmas.html "$domainPath/index.html" + ;; + 99) cp "$custom_file" "$domainPath/index.html" ;; + *) red "无效的建站样式选择!" continue @@ -3796,8 +3801,8 @@ addDomain() { echo "3. 德一教育系统后台" echo "4. 李明的英文简历" echo "5. 游戏殿堂" - echo "6. 自定义网站" - echo "0. 返回上一级" + echo "6. 圣诞节贺卡" + echo "99. 自定义网站" read -p "你的选择: " choice @@ -3823,6 +3828,10 @@ addDomain() { break ;; 6) + echo "你选择了圣诞节贺卡" + break + ;; + 99) break ;; 0) @@ -3873,7 +3882,7 @@ addDomain() { return 1 fi fi - if [[ "$choice" == "6" ]]; then + if [[ "$choice" == "99" ]]; then read -p "输入网址html文件路径:" input if [[ -z "$input" ]]; then red "输入不能为空!" @@ -4556,4 +4565,4 @@ elif [ "$1" == "--install" ]; then exit 0 else showMenu -fi \ No newline at end of file +fi From da32c0d776604f48b6fd2b336ec1a3577d5d4bc5 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Thu, 25 Dec 2025 15:15:18 +0800 Subject: [PATCH 199/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9C=A3=E8=AF=9E?= =?UTF-8?q?=E8=8A=82=E7=BD=91=E7=AB=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/start.sh b/start.sh index 142cefa3..7f433405 100755 --- a/start.sh +++ b/start.sh @@ -3882,6 +3882,13 @@ addDomain() { return 1 fi fi + if [[ "$choice" == "6" ]]; then + cp websites/christmas.html $target/index.html + if [ $? -ne 0 ]; then + red "安装失败!" + return 1 + fi + fi if [[ "$choice" == "99" ]]; then read -p "输入网址html文件路径:" input if [[ -z "$input" ]]; then From 20ad92b9a0b5eeaf5d6d1190d82c8f7ddc028c5b Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 7 Feb 2026 01:18:34 +0800 Subject: [PATCH 200/210] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=87=E4=BB=BD/?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 169 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 7f433405..8ad03c07 100755 --- a/start.sh +++ b/start.sh @@ -1087,6 +1087,171 @@ ImageRecovery() { } +get_domain_webip() { + local domain=$1 + if [[ -z "$domain" ]]; then + echo "" + return + fi + devil ssl www list | awk -v d="$domain" 'tolower($1)==tolower(d) {print $2; exit}' +} + +delete_domain_service() { + local domain=$1 + if [[ -z "$domain" ]]; then + return + fi + domain="${domain,,}" + local webip=$(get_domain_webip "$domain") + if [[ -n "$webip" ]]; then + devil ssl www del $webip $domain >/dev/null 2>&1 + fi + devil www del $domain --remove >/dev/null 2>&1 + rm -rf "${installpath}/domains/$domain" + green "已删除域名服务: $domain" +} + +delete_domains_from_domainlist() { + local list_file=$1 + if [[ ! -f "$list_file" ]]; then + red "domainlist文件不存在!" + return 1 + fi + while read -r domain; do + domain=$(echo "$domain" | xargs) + if [[ -z "$domain" ]]; then + continue + fi + delete_domain_service "$domain" + done < <(awk 'NF && $1 != "Domain" {print $1}' "$list_file") +} + +backupAll() { + local input="" + read -p "是否删除所有域名关联服务? [y/n] [n]:" input + input=${input:-n} + local domainlist_file="${installpath}/domainlist" + if [[ "$input" == "y" ]]; then + devil www list >"$domainlist_file" + fi + local tarfile="${installpath}/all.tar.gz" + tar -czf "$tarfile" --exclude="serv00-play" --exclude="backups" --exclude="all.tar.gz" -C "$installpath" . + if [[ $? -ne 0 ]]; then + red "备份失败!" + return 1 + fi + green "备份完成: $tarfile" + if [[ "$input" == "y" ]]; then + delete_domains_from_domainlist "$domainlist_file" + fi +} + +restore_domains_from_config() { + local workdir="${installpath}/serv00-play/domains-support" + local config_file="${workdir}/phpconfig.json" + if [[ ! -f "$config_file" ]]; then + red "未找到phpconfig.json!" + return 1 + fi + cd $workdir + local domains=$(jq -r '.domains[].domain' "$config_file" 2>/dev/null) + if [[ -z "$domains" ]]; then + red "phpconfig.json中未找到域名!" + return 1 + fi + while read -r domain; do + domain=$(echo "$domain" | xargs) + if [[ -z "$domain" ]]; then + continue + fi + domain="${domain,,}" + domainPath="$installpath/domains/$domain/public_html" + webIp="" + echo "正在恢复域名: $domain" + if ! makeWWW "" "" "php" "y" "$domain"; then + red "绑定域名 $domain 失败!" + continue + fi + if ! applyLE "$domain" "$webIp" "y"; then + red "申请证书失败: $domain" + fi + if [[ ! -d "$domainPath" ]]; then + red "目标目录不存在: $domainPath" + continue + fi + local style_choice=$((RANDOM % 6 + 1)) + case "$style_choice" in + 1) + cp websites/sakura.html "$domainPath/index.html" + sed -i.bak "s|xx|樱花|g" "$domainPath/index.html" + ;; + 2) + cp websites/hr.html "$domainPath/index.html" + ;; + 3) + cp websites/deyiedu.html "$domainPath/index.html" + ;; + 4) + cp websites/resume.html "$domainPath/index.html" + ;; + 5) + cp websites/game.html "$domainPath/index.html" + ;; + 6) + cp websites/christmas.html "$domainPath/index.html" + ;; + esac + green "域名 $domain 的网站恢复完成!" + done <<<"$domains" +} + +restoreAll() { + local tarfile="${installpath}/all.tar.gz" + if [[ ! -f "$tarfile" ]]; then + red "未发现备份文件: $tarfile" + return 1 + fi + tar -xzf "$tarfile" -C "$installpath" + if [[ $? -ne 0 ]]; then + red "恢复失败!" + return 1 + fi + green "文件恢复完成!" + restore_domains_from_config +} + +backupRestoreServ() { + while true; do + yellow "---------------------" + echo "备份/恢复功能:" + echo "1. 备份" + echo "2. 恢复" + echo "9. 返回主菜单" + echo "0. 退出脚本" + yellow "---------------------" + read -p "请选择:" input + + case $input in + 1) + backupAll + ;; + 2) + restoreAll + ;; + 9) + break + ;; + 0) + exit 0 + ;; + *) + echo "无效选项,请重试" + ;; + esac + done + showMenu +} + uninstall() { local input=$1 if [ -z "$input" ]; then @@ -4458,7 +4623,7 @@ showMenu() { options=("安装/更新serv00-play项目" "sun-panel" "webssh" "阅后即焚" "linkalive" "设置保活的项目" "配置sing-box" "运行sing-box" "停止sing-box" "显示sing-box节点信息" "快照恢复" "系统初始化" "前置工作及设置中国时区" "哪吒探针管理" "哪吒面板管理" "设置彩色开机字样" "显示本机IP" "mtproto代理" "alist管理" "端口管理" "域名证书管理" "一键root" "自动检测主机IP状态" "一键更换hy2的IP" "KeepAlive" "Domains-Support" "微信消息推送界面管理" - "开发工具管理" "卸载") + "开发工具管理" "备份/恢复" "卸载") select opt in "${options[@]}"; do case $REPLY in @@ -4547,6 +4712,9 @@ showMenu() { devManage ;; 29) + backupRestoreServ + ;; + 30) uninstall ;; 0) From 2ac77eea614bd526dae0f4b8bd5af3aa7bb3f078 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 7 Feb 2026 22:21:28 +0800 Subject: [PATCH 201/210] =?UTF-8?q?=E7=B2=BE=E7=AE=80=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 8ad03c07..1ddc9d91 100755 --- a/start.sh +++ b/start.sh @@ -1135,7 +1135,7 @@ backupAll() { devil www list >"$domainlist_file" fi local tarfile="${installpath}/all.tar.gz" - tar -czf "$tarfile" --exclude="serv00-play" --exclude="backups" --exclude="all.tar.gz" -C "$installpath" . + tar -czf "$tarfile" -C "$installpath" mail serv00-play domains "$domainlist_file" .profile .bashrc .vimrc if [[ $? -ne 0 ]]; then red "备份失败!" return 1 From 0eb573c575a13cd33835e9445faf0a64eb8d8b91 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 7 Feb 2026 22:27:34 +0800 Subject: [PATCH 202/210] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/start.sh b/start.sh index 1ddc9d91..6bffe9c0 100755 --- a/start.sh +++ b/start.sh @@ -1131,10 +1131,9 @@ backupAll() { read -p "是否删除所有域名关联服务? [y/n] [n]:" input input=${input:-n} local domainlist_file="${installpath}/domainlist" - if [[ "$input" == "y" ]]; then - devil www list >"$domainlist_file" - fi + devil www list >"$domainlist_file" local tarfile="${installpath}/all.tar.gz" + echo "正在备份中,请稍后(可能需要几分钟)..." tar -czf "$tarfile" -C "$installpath" mail serv00-play domains "$domainlist_file" .profile .bashrc .vimrc if [[ $? -ne 0 ]]; then red "备份失败!" From 1d2344dcc540f50228c9b7fc8fa41b06b3db90af Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 7 Feb 2026 22:36:11 +0800 Subject: [PATCH 203/210] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 6bffe9c0..3a8d5663 100755 --- a/start.sh +++ b/start.sh @@ -1134,7 +1134,13 @@ backupAll() { devil www list >"$domainlist_file" local tarfile="${installpath}/all.tar.gz" echo "正在备份中,请稍后(可能需要几分钟)..." - tar -czf "$tarfile" -C "$installpath" mail serv00-play domains "$domainlist_file" .profile .bashrc .vimrc + local files=("mail" "serv00-play" "domains" "$domainlist_file") + for dotfile in .profile .bashrc .vimrc; do + if [[ -e "$installpath/$dotfile" ]]; then + files+=("$dotfile") + fi + done + tar -czf "$tarfile" -C "$installpath" "${files[@]}" if [[ $? -ne 0 ]]; then red "备份失败!" return 1 From d9cbe283c7c0e53e605661aab38bb7717831ba26 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 7 Feb 2026 23:02:34 +0800 Subject: [PATCH 204/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/start.sh b/start.sh index 3a8d5663..41200d5a 100755 --- a/start.sh +++ b/start.sh @@ -1164,6 +1164,23 @@ restore_domains_from_config() { red "phpconfig.json中未找到域名!" return 1 fi + read -r -p "是否自动配置 Cloudflare 域名 DNS?(y/n) [默认: n]: " auto_cf_dns + auto_cf_dns=${auto_cf_dns:-n} + local cf_api_token="" + local cf_email="" + if [[ "$auto_cf_dns" == "y" || "$auto_cf_dns" == "Y" ]]; then + read -r -p "请输入 Cloudflare API Token: " cf_api_token + if [[ -z "$cf_api_token" ]]; then + red "API Token 不能为空!" + return 1 + fi + read -r -p "请输入 Cloudflare 账户邮箱: " cf_email + if [[ -z "$cf_email" ]]; then + red "账户邮箱不能为空!" + return 1 + fi + fi + local failed_domains=() while read -r domain; do domain=$(echo "$domain" | xargs) if [[ -z "$domain" ]]; then @@ -1177,6 +1194,59 @@ restore_domains_from_config() { red "绑定域名 $domain 失败!" continue fi + if [[ "$auto_cf_dns" == "y" || "$auto_cf_dns" == "Y" ]]; then + if [[ -n "$webIp" && -n "$cf_api_token" && -n "$cf_email" ]]; then + yellow "正在为 $domain 配置 Cloudflare DNS..." + local zone_id=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=${domain}" \ + -H "X-Auth-Email: ${cf_email}" \ + -H "X-Auth-Key: ${cf_api_token}" \ + -H "Content-Type: application/json" | jq -r '.result[0].id') + + if [[ -z "$zone_id" || "$zone_id" == "null" ]]; then + red "无法获取域名 $domain 的 Zone ID,请检查域名是否已添加到您的 Cloudflare 账户。" + failed_domains+=("$domain") + continue + else + local existing_record_id=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records?type=A&name=${domain}" \ + -H "X-Auth-Email: ${cf_email}" \ + -H "X-Auth-Key: ${cf_api_token}" \ + -H "Content-Type: application/json" | jq -r --arg domain "$domain" '.result[] | select(.name == $domain) | .id') + + if [[ -n "$existing_record_id" && "$existing_record_id" != "null" ]]; then + yellow "✓ 域名 $domain 已存在 A 记录,正在更新 IP 地址为 $webIp..." + local update_record_response=$(curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records/${existing_record_id}" \ + -H "X-Auth-Email: ${cf_email}" \ + -H "X-Auth-Key: ${cf_api_token}" \ + -H "Content-Type: application/json" \ + --data '{"type":"A","name":"'"$domain"'","content":"'"$webIp"'","ttl":1,"proxied":false}') + + if [[ $(echo "$update_record_response" | jq -r '.success') != "true" ]]; then + red "更新域名 $domain 的 A 记录失败: $(echo "$update_record_response" | jq -r '.errors[0].message')" + failed_domains+=("$domain") + continue + fi + else + yellow "正在为 $domain 创建新的 A 记录..." + local create_record_response=$(curl -s -X POST "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records" \ + -H "X-Auth-Email: ${cf_email}" \ + -H "X-Auth-Key: ${cf_api_token}" \ + -H "Content-Type: application/json" \ + --data '{"type":"A","name":"'"$domain"'","content":"'"$webIp"'","ttl":1,"proxied":false}') + + if [[ $(echo "$create_record_response" | jq -r '.success') != "true" ]]; then + red "为 $domain 创建 A 记录失败: $(echo "$create_record_response" | jq -r '.errors[0].message')" + failed_domains+=("$domain") + continue + fi + fi + fi + else + red "缺少 WebIP 或 Cloudflare 凭证,无法自动配置 DNS。" + failed_domains+=("$domain") + continue + fi + fi + sleep 10 //等待dns记录生效 if ! applyLE "$domain" "$webIp" "y"; then red "申请证书失败: $domain" fi @@ -1208,6 +1278,12 @@ restore_domains_from_config() { esac green "域名 $domain 的网站恢复完成!" done <<<"$domains" + if [[ ${#failed_domains[@]} -gt 0 ]]; then + red "以下域名 DNS 配置失败,请手动修改 DNS 后再进行批量导入域名:" + for d in "${failed_domains[@]}"; do + echo "$d" + done + fi } restoreAll() { From f666e3faac3f3b13c98a381175a5757b72519156 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 7 Feb 2026 23:06:33 +0800 Subject: [PATCH 205/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/start.sh b/start.sh index 41200d5a..4bc6655d 100755 --- a/start.sh +++ b/start.sh @@ -1135,11 +1135,15 @@ backupAll() { local tarfile="${installpath}/all.tar.gz" echo "正在备份中,请稍后(可能需要几分钟)..." local files=("mail" "serv00-play" "domains" "$domainlist_file") - for dotfile in .profile .bashrc .vimrc; do - if [[ -e "$installpath/$dotfile" ]]; then - files+=("$dotfile") - fi - done + read -p "是否备份 .profile .bashrc .vimrc 文件? [y/n] [n]:" input + input=${input:-n} + if [[ "$input" == "y" ]]; then + for dotfile in .profile .bashrc .vimrc; do + if [[ -e "$installpath/$dotfile" ]]; then + files+=("$dotfile") + fi + done + fi tar -czf "$tarfile" -C "$installpath" "${files[@]}" if [[ $? -ne 0 ]]; then red "备份失败!" From 3044260c595f78c9e982801d574e4a82abd5c604 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sat, 7 Feb 2026 23:37:02 +0800 Subject: [PATCH 206/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/start.sh b/start.sh index 4bc6655d..adceb1ff 100755 --- a/start.sh +++ b/start.sh @@ -1127,30 +1127,35 @@ delete_domains_from_domainlist() { } backupAll() { - local input="" - read -p "是否删除所有域名关联服务? [y/n] [n]:" input - input=${input:-n} + local delete_choice="" + read -p "是否删除所有域名关联服务? [y/n] [n]:" delete_choice + delete_choice=${delete_choice:-n} local domainlist_file="${installpath}/domainlist" - devil www list >"$domainlist_file" local tarfile="${installpath}/all.tar.gz" - echo "正在备份中,请稍后(可能需要几分钟)..." - local files=("mail" "serv00-play" "domains" "$domainlist_file") - read -p "是否备份 .profile .bashrc .vimrc 文件? [y/n] [n]:" input - input=${input:-n} - if [[ "$input" == "y" ]]; then + + local files=("mail" "serv00-play" "domains") + if [[ "$delete_choice" == "y" ]]; then + devil www list >"$domainlist_file" + files+=("$domainlist_file") + fi + local dotfile_choice="" + read -p "是否备份 .profile .bashrc .vimrc 文件? [y/n] [n]:" dotfile_choice + dotfile_choice=${dotfile_choice:-n} + if [[ "$dotfile_choice" == "y" ]]; then for dotfile in .profile .bashrc .vimrc; do if [[ -e "$installpath/$dotfile" ]]; then files+=("$dotfile") fi done fi + echo "正在备份中,请稍后(可能需要几分钟)..." tar -czf "$tarfile" -C "$installpath" "${files[@]}" if [[ $? -ne 0 ]]; then red "备份失败!" return 1 fi green "备份完成: $tarfile" - if [[ "$input" == "y" ]]; then + if [[ "$delete_choice" == "y" ]]; then delete_domains_from_domainlist "$domainlist_file" fi } From 4b499348b4384b1441cc18ebba9433a4c5f0de10 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sun, 8 Feb 2026 01:00:26 +0800 Subject: [PATCH 207/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/start.sh b/start.sh index adceb1ff..98115b35 100755 --- a/start.sh +++ b/start.sh @@ -1126,11 +1126,32 @@ delete_domains_from_domainlist() { done < <(awk 'NF && $1 != "Domain" {print $1}' "$list_file") } +delete_domains_from_phpconfig() { + local config_file=$1 + if [[ ! -f "$config_file" ]]; then + red "未找到phpconfig.json!" + return 1 + fi + local domains=$(jq -r '.domains[].domain' "$config_file" 2>/dev/null) + if [[ -z "$domains" ]]; then + red "phpconfig.json中未找到域名!" + return 1 + fi + while read -r domain; do + domain=$(echo "$domain" | xargs) + if [[ -z "$domain" ]]; then + continue + fi + delete_domain_service "$domain" + done <<<"$domains" +} + backupAll() { local delete_choice="" read -p "是否删除所有域名关联服务? [y/n] [n]:" delete_choice delete_choice=${delete_choice:-n} local domainlist_file="${installpath}/domainlist" + local phpconfig_file="${installpath}/serv00-play/domains-support/phpconfig.json" local tarfile="${installpath}/all.tar.gz" local files=("mail" "serv00-play" "domains") @@ -1156,7 +1177,7 @@ backupAll() { fi green "备份完成: $tarfile" if [[ "$delete_choice" == "y" ]]; then - delete_domains_from_domainlist "$domainlist_file" + delete_domains_from_phpconfig "$phpconfig_file" fi } From 30d5371575b954fa4b6dace281d24469e010d414 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sun, 8 Feb 2026 01:36:11 +0800 Subject: [PATCH 208/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/start.sh b/start.sh index 98115b35..67169049 100755 --- a/start.sh +++ b/start.sh @@ -1150,27 +1150,15 @@ backupAll() { local delete_choice="" read -p "是否删除所有域名关联服务? [y/n] [n]:" delete_choice delete_choice=${delete_choice:-n} - local domainlist_file="${installpath}/domainlist" local phpconfig_file="${installpath}/serv00-play/domains-support/phpconfig.json" local tarfile="${installpath}/all.tar.gz" - - local files=("mail" "serv00-play" "domains") - if [[ "$delete_choice" == "y" ]]; then - devil www list >"$domainlist_file" - files+=("$domainlist_file") - fi - local dotfile_choice="" - read -p "是否备份 .profile .bashrc .vimrc 文件? [y/n] [n]:" dotfile_choice - dotfile_choice=${dotfile_choice:-n} - if [[ "$dotfile_choice" == "y" ]]; then - for dotfile in .profile .bashrc .vimrc; do - if [[ -e "$installpath/$dotfile" ]]; then - files+=("$dotfile") - fi - done + local phpconfig_rel="serv00-play/domains-support/phpconfig.json" + if [[ ! -f "$phpconfig_file" ]]; then + red "未找到phpconfig.json!" + return 1 fi echo "正在备份中,请稍后(可能需要几分钟)..." - tar -czf "$tarfile" -C "$installpath" "${files[@]}" + tar -czf "$tarfile" -C "$installpath" "$phpconfig_rel" if [[ $? -ne 0 ]]; then red "备份失败!" return 1 @@ -1318,6 +1306,7 @@ restore_domains_from_config() { restoreAll() { local tarfile="${installpath}/all.tar.gz" + local phpconfig_file="${installpath}/serv00-play/domains-support/phpconfig.json" if [[ ! -f "$tarfile" ]]; then red "未发现备份文件: $tarfile" return 1 @@ -1327,6 +1316,10 @@ restoreAll() { red "恢复失败!" return 1 fi + if [[ ! -f "$phpconfig_file" ]]; then + red "未恢复到phpconfig.json!" + return 1 + fi green "文件恢复完成!" restore_domains_from_config } From 2afa007c4081a0aeadd0fdbf88919b0cf68576c3 Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sun, 8 Feb 2026 01:45:15 +0800 Subject: [PATCH 209/210] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/start.sh b/start.sh index 67169049..75740e29 100755 --- a/start.sh +++ b/start.sh @@ -1264,7 +1264,7 @@ restore_domains_from_config() { continue fi fi - sleep 10 //等待dns记录生效 + sleep 10 if ! applyLE "$domain" "$webIp" "y"; then red "申请证书失败: $domain" fi From 18be71ed69bd73150549847aeb01fb0f41caaf3f Mon Sep 17 00:00:00 2001 From: Frankie Jun Date: Sun, 8 Feb 2026 16:06:29 +0800 Subject: [PATCH 210/210] =?UTF-8?q?fixed:=E8=AE=A1=E7=AE=97=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E8=A2=AB=E8=87=AA=E5=8A=A8=E5=BD=93=E6=88=90=E5=85=AB?= =?UTF-8?q?=E8=BF=9B=E5=88=B6=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/revive.sh b/revive.sh index 7dd045b2..47cd1b55 100644 --- a/revive.sh +++ b/revive.sh @@ -86,7 +86,7 @@ if [[ "$LOGINONCE" == "Y" ]]; then SERVER_COUNT=$(echo "$HOSTS_JSON" | jq '.info | length') # 计算今天应该登录哪个服务器(取模运算) - INDEX=$(((DAY_OF_YEAR - 1) % SERVER_COUNT)) + INDEX=$(((10#$DAY_OF_YEAR - 1) % SERVER_COUNT)) # 获取对应的服务器配置 CONFIG=$(echo "$HOSTS_JSON" | jq ".info[$INDEX]")

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