From 8b4f580398e5acfd16bdc1966374bd73ac0fd3fd Mon Sep 17 00:00:00 2001 From: Leon Date: Thu, 5 Aug 2021 18:18:08 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=A1=F0=9F=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Scripts/sh/1custom.sh | 6 +- Scripts/sh/1customCDN.sh | 6 +- Scripts/sh/ql.sh | 163 +++++++++++++++------------ Scripts/sh/{scanNinja.sh => scan.sh} | 0 Scripts/sh/v4.sh | 51 +++++---- Tasks/qlrepo/extra.sh | 25 +--- 6 files changed, 125 insertions(+), 126 deletions(-) rename Scripts/sh/{scanNinja.sh => scan.sh} (100%) diff --git a/Scripts/sh/1custom.sh b/Scripts/sh/1custom.sh index 8bca9b0..0d944d1 100644 --- a/Scripts/sh/1custom.sh +++ b/Scripts/sh/1custom.sh @@ -79,9 +79,9 @@ set_default_extra(){ CollectedRepo=${CollectedRepo:-"4"} sed -i "s/CollectedRepo=(4)/CollectedRepo=(${CollectedRepo})/g" $extra_shell_path sed -i "s/OtherRepo=()/OtherRepo=(${OtherRepo})/g" $extra_shell_path - echo -e "Ninja\n### (1)默认启动并自动更新,未运行成功将强制重装\n### (2)!!!未修改容器映射的请勿运行,否则会出现青龙打不开或者设备死机等不良后果,映射参考 https://github.com/MoonBegonia/ninja#%E5%AE%B9%E5%99%A8%E5%86%85" - read -p "Ninja="up" ##up为运行,down为不运行 输入您的设置(默认运行) up/down:" Ninja - sed -i "s/\"up\"/\"${Ninja}\"/" $extra_shell_path + echo -e "Ninja\n###(1)默认启动并自动更新\n###(2)!!!未修改容器映射的请勿运行,否则会出现青龙打不开或者设备死机等不良后果,映射参考 https://github.com/MoonBegonia/ninja#%E5%AE%B9%E5%99%A8%E5%86%85" + read -p "Ninja="up" ## up为运行,down为不运行,请输入您的设置(默认运行) up/down:" Ninja + sed -i "s/Ninja=\"up\"/Ninja=\"${Ninja}\"/" $extra_shell_path } # 将 ql extra 添加到定时任务 add_ql_extra(){ diff --git a/Scripts/sh/1customCDN.sh b/Scripts/sh/1customCDN.sh index 2162df7..36431c3 100644 --- a/Scripts/sh/1customCDN.sh +++ b/Scripts/sh/1customCDN.sh @@ -114,9 +114,9 @@ set_default_extra(){ CollectedRepo=${CollectedRepo:-"4"} sed -i "s/CollectedRepo=(4)/CollectedRepo=(${CollectedRepo})/g" $extra_shell_path sed -i "s/OtherRepo=()/OtherRepo=(${OtherRepo})/g" $extra_shell_path - echo -e "Ninja\n### (1)默认启动并自动更新,未运行成功将强制重装\n### (2)!!!未修改容器映射的请勿运行,否则会出现青龙打不开或者设备死机等不良后果,映射参考 https://github.com/MoonBegonia/ninja#%E5%AE%B9%E5%99%A8%E5%86%85" - read -p "Ninja="up" ##up为运行,down为不运行 输入您的设置(默认运行) up/down:" Ninja - sed -i "s/\"up\"/\"${Ninja}\"/" $extra_shell_path + echo -e "Ninja\n###(1)默认启动并自动更新\n###(2)!!!未修改容器映射的请勿运行,否则会出现青龙打不开或者设备死机等不良后果,映射参考 https://github.com/MoonBegonia/ninja#%E5%AE%B9%E5%99%A8%E5%86%85" + read -p "Ninja="up" ## up为运行,down为不运行,请输入您的设置(默认运行) up/down:" Ninja + sed -i "s/Ninja=\"up\"/Ninja=\"${Ninja}\"/" $extra_shell_path } # 将 ql extra 添加到定时任务 add_ql_extra(){ diff --git a/Scripts/sh/ql.sh b/Scripts/sh/ql.sh index a6753c5..8f5744a 100644 --- a/Scripts/sh/ql.sh +++ b/Scripts/sh/ql.sh @@ -27,6 +27,7 @@ PULL_IMAGE=true HAS_CONTAINER=false DEL_CONTAINER=true INSTALL_WATCH=false +INSTALL_NINJA=true ENABLE_WEB_PANEL=true ENABLE_HANGUP=true OLD_IMAGE_ID="" @@ -149,6 +150,9 @@ echo -n -e "\e[36m输入您的选择->\e[0m" read net if [ "$net" = "2" ]; then NETWORK="bridge" + CHANGE_NETWORK="--network $NETWORK" +else + CHANGE_NETWORK="--network $NETWORK" fi inp "是否在启动容器时自动启动挂机程序:\n1) 开启[默认]\n2) 关闭" @@ -165,9 +169,46 @@ if [ "$pannel" = "2" ]; then ENABLE_WEB_PANNEL_ENV="" fi +# 端口问题 +modify_ql_port(){ + inp "是否修改青龙端口[默认 5700]:\n1) 修改\n2) 不修改[默认]" + echo -n -e "\e[36m输入您的选择->\e[0m" + read change_ql_port + if [ "$change_ql_port" = "1" ]; then + echo -n -e "\e[36m输入您想修改的端口->\e[0m" + read JD_PORT + fi +} +modify_Ninja_port(){ + inp "是否修改 Ninja 端口[默认 5701]:\n1) 修改\n2) 不修改[默认]" + echo -n -e "\e[36m输入您的选择->\e[0m" + read change_Ninja_port + if [ "$change_Ninja_port" = "1" ]; then + echo -n -e "\e[36m输入您想修改的端口->\e[0m" + read NINJA_PORT + fi +} inp "根据设备是否映射端口:\n1) 映射[默认]\n2) 不映射" echo -n -e "\e[36m输入您的选择->\e[0m" read port +if [ "$port" = "2" ]; then + MAPPING_JD_PORT="" + MAPPING_NINJA_PORT="" +else + CHANGE_NETWORK="" + MAPPING_JD_PORT="-p $JD_PORT:5700" + inp "是否安装 Ninja,若已存在则强制重装:\n1) 安装[默认]\n2) 不安装" + echo -n -e "\e[36m输入您的选择->\e[0m" + read Ninja + if [ "$Ninja" = "2" ]; then + INSTALL_NINJA=false + modify_ql_port + MAPPING_NINJA_PORT="" + else + modify_ql_port + modify_Ninja_port + fi +fi # 配置已经创建完成,开始执行 @@ -195,78 +236,49 @@ if [ $HAS_IMAGE = true ] && [ $PULL_IMAGE = true ]; then fi fi -log "3.开始创建容器并执行" - -run_port(){ - docker run -dit \ - -t \ - -v $CONFIG_PATH:/ql/config \ - -v $DB_PATH:/ql/db \ - -v $LOG_PATH:/ql/log \ - -v $REPO_PATH:/ql/repo \ - -v $RAW_PATH:/ql/raw \ - -v $SCRIPT_PATH:/ql/scripts \ - -v $JBOT_PATH:/ql/jbot \ - -v $NINJA_PATH:/ql/ninja \ - -p $JD_PORT:5700 \ - -p $NINJA_PORT:5701 \ - --name $CONTAINER_NAME \ - --hostname qinglong \ - --restart always \ - $ENABLE_HANGUP_ENV \ - $ENABLE_WEB_PANEL_ENV \ - $DOCKER_IMG_NAME:$TAG -} - -run_noport(){ - docker run -dit \ - -t \ - -v $CONFIG_PATH:/ql/config \ - -v $DB_PATH:/ql/db \ - -v $LOG_PATH:/ql/log \ - -v $REPO_PATH:/ql/repo \ - -v $RAW_PATH:/ql/raw \ - -v $SCRIPT_PATH:/ql/scripts \ - -v $JBOT_PATH:/ql/jbot \ - -v $NINJA_PATH:/ql/ninja \ - --name $CONTAINER_NAME \ - --hostname qinglong \ - --restart always \ - --network $NETWORK \ - $ENABLE_HANGUP_ENV \ - $ENABLE_WEB_PANEL_ENV \ - $DOCKER_IMG_NAME:$TAG -} - # 端口存在检测 -check_port() { - echo "正在检测端口 $1" +check_port(){ + echo "正在检测端口:$1" netstat -tlpn | grep "\b$1\b" } - -while check_port $JD_PORT; do - if [ "$port" != "2" ]; then - echo -n -e "\e[31m端口被占用,请重新输入青龙面板端口:\e[0m" +if [ "$port" != "2" ]; then + while check_port $JD_PORT; do + echo -n -e "\e[31m端口:$JD_PORT 被占用,请重新输入青龙面板端口:\e[0m" read JD_PORT - else - break - fi -done - -while check_port $NINJA_PORT; do - if [ "$port" != "2" ]; then - echo -n -e "\e[31m端口被占用,请重新输入 Ninja 面板端口:\e[0m" - read NINJA_PORT - else - break - fi -done - -if [ "$port" = "2" ]; then - run_noport -else - run_port + done + echo -e "\e[34m恭喜,端口:$JD_PORT 可用\e[0m" + MAPPING_JD_PORT="-p $JD_PORT:5700" fi +if [ "$Ninja" != "2" ]; then + while check_port $NINJA_PORT; do + echo -n -e "\e[31m端口:$NINJA_PORT 被占用,请重新输入 Ninja 面板端口:\e[0m" + read NINJA_PORT + done + echo -e "\e[34m恭喜,端口:$NINJA_PORT 可用\e[0m" + MAPPING_NINJA_PORT="-p $NINJA_PORT:5701" +fi + + +log "3.开始创建容器并执行" +docker run -dit \ + -t \ + -v $CONFIG_PATH:/ql/config \ + -v $DB_PATH:/ql/db \ + -v $LOG_PATH:/ql/log \ + -v $REPO_PATH:/ql/repo \ + -v $RAW_PATH:/ql/raw \ + -v $SCRIPT_PATH:/ql/scripts \ + -v $JBOT_PATH:/ql/jbot \ + -v $NINJA_PATH:/ql/ninja \ + $MAPPING_JD_PORT \ + $MAPPING_NINJA_PORT \ + --name $CONTAINER_NAME \ + --hostname qinglong \ + --restart always \ + $CHANGE_NETWORK \ + $ENABLE_HANGUP_ENV \ + $ENABLE_WEB_PANEL_ENV \ + $DOCKER_IMG_NAME:$TAG if [ $? -ne 0 ] ; then cancelrun "** 错误:容器创建失败,多数由于 docker 空间不足引起,请检查!" @@ -299,11 +311,11 @@ log "5.开始检测 Nginx 静态解析" echo "开始扫描静态解析是否在线!" ps -fe|grep nginx|grep -v grep if [ $? -ne 0 ]; then - echo $NOWTIME" 扫描结束!Nginx 静态解析停止!准备重启!" + echo echo "$(date +%Y-%m-%d" "%H:%M:%S) 扫描结束!Nginx 静态解析停止!准备重启!" docker exec -it $CONTAINER_NAME nginx -c /etc/nginx/nginx.conf - echo $NOWTIME" Nginx 静态解析重启完成!" + echo "$(date +%Y-%m-%d" "%H:%M:%S) Nginx 静态解析重启完成!" else - echo $NOWTIME" 扫描结束!Nginx 静态解析正常!" + echo "$(date +%Y-%m-%d" "%H:%M:%S) 扫描结束!Nginx 静态解析正常!" fi if [ "$port" = "2" ]; then @@ -339,13 +351,18 @@ cat $CONFIG_PATH/auth.json echo -e "\n" if [ "$access" != "2" ]; then if [ "$(grep -c "token" $CONFIG_PATH/auth.json)" != 0 ]; then - log "7.开始青龙内部配置" + log "7.开始安装或重装 Ninja" + if [ "$INSTALL_NINJA" = true ]; then + docker exec -it $CONTAINER_NAME bash -c "cd /ql;ps -ef|grep ninja|grep -v grep|awk '{print $1}'|xargs kill -9;rm -rf /ql/ninja;git clone https://github.com/MoonBegonia/ninja.git /ql/ninja;cd /ql/ninja/backend;pnpm install;cp .env.example .env;cp sendNotify.js /ql/scripts/sendNotify.js;sed -i \"s/NINJA_PORT=5701/NINJA_PORT=${NINJA_PORT}/\" /ql/ninja/backend/.env;sed -i \"s/ALLOW_NUM=40/ALLOW_NUM=100/\" /ql/ninja/backend/.env;pm2 start" + docker exec -it $CONTAINER_NAME bash -c "sed -i \"s/NINJA_PORT=5701/NINJA_PORT=${NINJA_PORT}/\" /ql/ninja/backend/.env && sed -i \"s/ALLOW_NUM=40/ALLOW_NUM=100/\" /ql/ninja/backend/.env && pm2 start" + fi + log "8.开始青龙内部配置" docker exec -it $CONTAINER_NAME bash -c "$(curl -fsSL https://gitee.com/allin1code/a1/raw/master/1customCDN.sh)" else - warn "7.未检测到 token,取消内部配置" + warn "8.未检测到 token,取消内部配置" fi else exit 0 fi -log "全面部署已完成!enjoy!!!" +log "全面部署已完成!enjoy!!!" \ No newline at end of file diff --git a/Scripts/sh/scanNinja.sh b/Scripts/sh/scan.sh similarity index 100% rename from Scripts/sh/scanNinja.sh rename to Scripts/sh/scan.sh diff --git a/Scripts/sh/v4.sh b/Scripts/sh/v4.sh index 6ca2d7f..04d9c02 100644 --- a/Scripts/sh/v4.sh +++ b/Scripts/sh/v4.sh @@ -36,8 +36,6 @@ ENABLE_WEB_PANEL=true ENABLE_HANGUP=true OLD_IMAGE_ID="" MOUNT_SCRIPT="" -MAPPING_PORT="-p $JD_PORT:5678" -CHANGE_NETWORK="--network $NETWORK" ENABLE_HANGUP_ENV="--env ENABLE_HANGUP=true" ENABLE_BOT_ENV="--env ENABLE_TG_BOT=true" ENABLE_WEB_PANEL_ENV="--env ENABLE_WEB_PANEL=true" @@ -170,6 +168,8 @@ read net if [ "$net" = "2" ]; then NETWORK="bridge" CHANGE_NETWORK="--network $NETWORK" +else + CHANGE_NETWORK="--network $NETWORK" fi inp "是否在启动容器时自动启动挂机程序:\n1) 开启[默认]\n2) 关闭" @@ -193,26 +193,27 @@ if [ "$pannel" = "2" ]; then ENABLE_WEB_PANNEL_ENV="" fi -inp "根据设备是否映射端口:\n1) 映射[默认]\n2) 不映射" -echo -n -e "\e[36m输入您的选择->\e[0m" -read port -if [ "$port" = "2" ]; then - MAPPING_PORT="" -else - CHANGE_NETWORK="" -fi - -if [ "$port" != "2" ]; then - inp "是否修改端口:\n1) 修改\n2) 不修改[默认]" +# 端口问题 +modify_v4_port(){ + inp "是否修改 V4 端口[默认 5678]:\n1) 修改\n2) 不修改[默认]" echo -n -e "\e[36m输入您的选择->\e[0m" read change_port if [ "$change_port" = "1" ]; then echo -n -e "\e[36m输入您想修改的端口->\e[0m" read JD_PORT - MAPPING_PORT="-p $JD_PORT:5678" fi +} +inp "根据设备是否映射端口:\n1) 映射[默认]\n2) 不映射" +echo -n -e "\e[36m输入您的选择->\e[0m" +read port +if [ "$port" = "2" ]; then + MAPPING_JD_PORT="" +else + CHANGE_NETWORK="" + modify_v4_port fi + # 配置已经创建完成,开始执行 log "1.开始创建配置文件目录" mkdir -p $CONFIG_PATH @@ -251,18 +252,18 @@ fi # 端口存在检测 check_port() { - echo "正在检测端口 $1" + echo "正在检测端口:$1" netstat -tlpn | grep "\b$1\b" } -while check_port $JD_PORT; do - if [ "$port" != "2" ]; then - echo -n -e "\e[31m端口被占用,请重新输入 V4 面板端口:\e[0m" +if [ "$port" != "2" ]; then + while check_port $JD_PORT; do + echo -n -e "\e[31m端口:$JD_PORT 被占用,请重新输入 V4 面板端口:\e[0m" read JD_PORT - else - MAPPING_PORT="-p $JD_PORT:5678" - break - fi -done + done + echo -e "\e[34m恭喜,端口:$JD_PORT 可用\e[0m" + MAPPING_JD_PORT="-p $JD_PORT:5678" +fi + log "3.开始创建容器并执行" docker run -dit \ @@ -272,7 +273,7 @@ docker run -dit \ -v $OWN_PATH:/jd/own \ $MOUNT_SCRIPT \ -v $DIY_PATH:/jd/jbot/diy \ - $MAPPING_PORT \ + $MAPPING_JD_PORT \ --name $CONTAINER_NAME \ --hostname jd_v4_bot \ --restart always \ @@ -317,4 +318,4 @@ log "6.安装已经完成。创建好后请阅读映射的 config 目录下的 log "7.如果启用了 ENABLE_TG_BOT,创建好后请阅读映射的 config 目录下的的 config.sh 和 bot.json,并根据说明修改,首次创建并不会启动 bot,修改好 bot.json 后请重启容器。" log "命令提示:\njtask mtask otask 链接的都是同一个脚本,m=my,o=own,j=jd。三者区分仅用在 crontab.list 中,以区别不同类型任务,手动运行直接 jtask 即可。\ndocker exec $CONTAINER_NAME jtask # 运行 scripts 脚本\ndocker exec $CONTAINER_NAME otask # 运行 own 脚本\ndocker exec $CONTAINER_NAME mtask # 运行你自己的脚本,如果某些 own 脚本识别不出来 cron,你也可以自行添加 mtask 任务\ndocker exec $CONTAINER_NAME jlog # 删除旧日志\ndocker exec $CONTAINER_NAME jup # 更新所有脚本\ndocker exec $CONTAINER_NAME jcode # 导出所有互助码\ndocker exec $CONTAINER_NAME jcsv # 记录豆豆变化情况" -log "enjoy!!!" +log "enjoy!!!" \ No newline at end of file diff --git a/Tasks/qlrepo/extra.sh b/Tasks/qlrepo/extra.sh index 84100d7..5f0937f 100644 --- a/Tasks/qlrepo/extra.sh +++ b/Tasks/qlrepo/extra.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -## Mod: Build20210805V1 +## Mod: Build20210805V2 ## 添加你需要重启自动执行的任意命令,比如 ql repo ## 安装node依赖使用 pnpm install -g xxx xxx(Build 20210728-002 及以上版本的 code.sh,可忽略) ## 安装python依赖使用 pip3 install xxx(Build 20210728-002 及以上版本的 code.sh,可忽略) @@ -14,7 +14,7 @@ ### (1)默认不安装,因为 Build 20210728-002 及以上版本的 code.sh 自动检查修复依赖 ### (2)若需要在此处使用,请在设置区设置 ## 3. Ninja -### (1)默认启动并自动更新,未运行成功将强制重装 +### (1)默认启动并自动更新 ### (2)⚠未修改容器映射的请勿运行,否则会出现青龙打不开或者设备死机等不良后果,映射参考 https://github.com/MoonBegonia/ninja#%E5%AE%B9%E5%99%A8%E5%86%85 @@ -129,27 +129,8 @@ update_Ninja_normal(){ cd /ql/ninja/backend && git pull -f && pnpm install && pm2 start && cp sendNotify.js /ql/scripts/sendNotify.js } -reinstall_Ninja_force(){ - ps -ef|grep ninja|grep -v grep - if [ $? -ne 0 ]; then - cd /ql - ps -ef|grep ninja|grep -v grep|awk '{print $1}'|xargs kill -9 && rm -rf /ql/ninja && rm -rf /ql/ninja - git clone https://github.com/MoonBegonia/ninja.git /ql/ninja ## 拉取仓库 - cd /ql/ninja/backend - pnpm install ## 安装局部依赖 - cp .env.example .env ## 复制环境变量配置文件 - cp sendNotify.js /ql/scripts/sendNotify.js ## 复制通知脚本到青龙容器 - pm2 start - fi -} - -check_Ninja_all(){ - update_Ninja_normal - reinstall_Ninja_force -} - if [ "${Ninja}" = "up" ]; then - check_Ninja_all & + update_Ninja_normal & fi