mirror of
https://github.com/whyour/qinglong.git
synced 2025-07-07 11:56:08 +08:00
添加ql check运行环境监测
This commit is contained in:
parent
1a801c2d31
commit
c77eb3d28d
|
@ -20,17 +20,17 @@ echo -e "nginx启动成功...\n"
|
||||||
|
|
||||||
echo -e "======================4. 启动控制面板========================\n"
|
echo -e "======================4. 启动控制面板========================\n"
|
||||||
if [[ $(pm2 info panel 2>/dev/null) ]]; then
|
if [[ $(pm2 info panel 2>/dev/null) ]]; then
|
||||||
pm2 reload panel
|
pm2 reload panel --source-map-support --time
|
||||||
else
|
else
|
||||||
pm2 start $dir_root/build/app.js -n panel
|
pm2 start $dir_root/build/app.js -n panel --source-map-support --time
|
||||||
fi
|
fi
|
||||||
echo -e "控制面板启动成功...\n"
|
echo -e "控制面板启动成功...\n"
|
||||||
|
|
||||||
echo -e "======================5. 启动定时任务========================\n"
|
echo -e "======================5. 启动定时任务========================\n"
|
||||||
if [[ $(pm2 info schedule 2>/dev/null) ]]; then
|
if [[ $(pm2 info schedule 2>/dev/null) ]]; then
|
||||||
pm2 reload schedule
|
pm2 reload schedule --source-map-support --time
|
||||||
else
|
else
|
||||||
pm2 start $dir_root/build/schedule.js -n schedule
|
pm2 start $dir_root/build/schedule.js -n schedule --source-map-support --time
|
||||||
fi
|
fi
|
||||||
echo -e "定时任务启动成功...\n"
|
echo -e "定时任务启动成功...\n"
|
||||||
|
|
||||||
|
|
110
shell/check.sh
Normal file
110
shell/check.sh
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
dir_shell=/ql/shell
|
||||||
|
. $dir_shell/share.sh
|
||||||
|
. $dir_shell/api.sh
|
||||||
|
get_token
|
||||||
|
|
||||||
|
panelLogPath="/root/.pm2/logs/panel-error.log"
|
||||||
|
|
||||||
|
reset_env() {
|
||||||
|
echo -e "---> 1. 开始检测配置文件\n"
|
||||||
|
fix_config
|
||||||
|
echo -e "---> 配置文件检测完成\n"
|
||||||
|
|
||||||
|
echo -e "---> 2. 开始安装青龙依赖\n"
|
||||||
|
npm_install_2 $dir_root
|
||||||
|
echo -e "---> 青龙依赖安装完成\n"
|
||||||
|
|
||||||
|
echo -e "---> 3. 开始安装脚本依赖\n"
|
||||||
|
cp -f $dir_sample/package.json $dir_scripts/package.json
|
||||||
|
npm_install_2 $dir_scripts
|
||||||
|
echo -e "---> 脚本依赖安装完成\n"
|
||||||
|
|
||||||
|
echo -e "---> 4. 复制通知文件\n"
|
||||||
|
echo -e "---> 复制一份 $file_notify_py_sample 为 $file_notify_py\n"
|
||||||
|
cp -fv $file_notify_py_sample $file_notify_py
|
||||||
|
echo
|
||||||
|
echo -e "---> 复制一份 $file_notify_js_sample 为 $file_notify_js\n"
|
||||||
|
cp -fv $file_notify_js_sample $file_notify_js
|
||||||
|
echo -e "---> 通知文件复制完成\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
reload_pm2() {
|
||||||
|
pm2 l >/dev/null 2>&1
|
||||||
|
|
||||||
|
if [[ $(pm2 info panel 2>/dev/null) ]]; then
|
||||||
|
pm2 reload panel --source-map-support --time >/dev/null 2>&1
|
||||||
|
else
|
||||||
|
pm2 start $dir_root/build/app.js -n panel --source-map-support --time >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $(pm2 info schedule 2>/dev/null) ]]; then
|
||||||
|
pm2 reload schedule --source-map-support --time >/dev/null 2>&1
|
||||||
|
else
|
||||||
|
pm2 start $dir_root/build/schedule.js -n schedule --source-map-support --time >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pm2_log() {
|
||||||
|
echo -e "---> pm2日志"
|
||||||
|
local panelOut="/root/.pm2/logs/panel-out.log"
|
||||||
|
local panelError="/root/.pm2/logs/panel-error.log"
|
||||||
|
tail -n 10 "$panelOut"
|
||||||
|
tail -n 10 "$panelError"
|
||||||
|
}
|
||||||
|
|
||||||
|
check_nginx() {
|
||||||
|
local nginxPid=$(ps -ef | grep nginx | grep -v grep)
|
||||||
|
echo -e "---> nginx服务\n$nginxPid"
|
||||||
|
if [[ $nginxPid ]]; then
|
||||||
|
echo -e "\n=====> nginx服务正常\n"
|
||||||
|
else
|
||||||
|
echo -e "\n=====> nginx服务异常,重新启动nginx\n"
|
||||||
|
nginx -c /etc/nginx/nginx.conf
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_ql() {
|
||||||
|
local api=$(curl -s "http://localhost:5700")
|
||||||
|
echo -e "\n=====> 检测面板\n\n$api\n"
|
||||||
|
if [[ $api =~ "<div id=\"root\"></div>" ]]; then
|
||||||
|
echo -e "=====> 面板服务启动正常\n"
|
||||||
|
check_nginx
|
||||||
|
else
|
||||||
|
echo -e "=====> 面板服务异常,重置基础环境\n"
|
||||||
|
reset_env
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_pm2() {
|
||||||
|
pm2_log
|
||||||
|
local currentTimeStamp=$(date +%s)
|
||||||
|
local api=$(
|
||||||
|
curl -s "http://localhost:5600/api/user?t=$currentTimeStamp" \
|
||||||
|
-H 'Accept: */*' \
|
||||||
|
-H "Authorization: Bearer $token" \
|
||||||
|
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36' \
|
||||||
|
-H 'Referer: http://localhost:5700/crontab' \
|
||||||
|
-H 'Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7' \
|
||||||
|
--compressed
|
||||||
|
)
|
||||||
|
echo -e "\n=====> 检测后台\n\n$api\n"
|
||||||
|
if [[ $api =~ "{\"code\"" ]]; then
|
||||||
|
echo -e "=====> 后台服务启动正常\n"
|
||||||
|
else
|
||||||
|
echo -e "=====> 后台服务异常,重启后台\n"
|
||||||
|
reload_pm2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
echo -e "=====> 开始检测"
|
||||||
|
check_ql
|
||||||
|
check_pm2
|
||||||
|
echo -e "\n=====> 检测结束\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
|
|
||||||
|
exit
|
|
@ -1,30 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# 导入通用变量与函数
|
|
||||||
dir_shell=/ql/shell
|
|
||||||
. $dir_shell/share.sh
|
|
||||||
|
|
||||||
echo -e "1. 开始检测配置文件\n"
|
|
||||||
fix_config
|
|
||||||
echo -e "配置文件检测完成\n"
|
|
||||||
|
|
||||||
echo -e "2. 开始安装青龙依赖\n"
|
|
||||||
npm_install_2 $dir_root
|
|
||||||
echo -e "青龙依赖安装完成\n"
|
|
||||||
|
|
||||||
echo -e "3. 开始安装脚本依赖\n"
|
|
||||||
cp -f $dir_sample/package.json $dir_scripts/package.json
|
|
||||||
npm_install_2 $dir_scripts
|
|
||||||
echo -e "脚本依赖安装完成\n"
|
|
||||||
|
|
||||||
echo -e "4. 复制通知文件\n"
|
|
||||||
echo -e "复制一份 $file_notify_py_sample 为 $file_notify_py\n"
|
|
||||||
cp -fv $file_notify_py_sample $file_notify_py
|
|
||||||
echo
|
|
||||||
|
|
||||||
echo -e "复制一份 $file_notify_js_sample 为 $file_notify_js\n"
|
|
||||||
cp -fv $file_notify_js_sample $file_notify_js
|
|
||||||
|
|
||||||
echo -e "通知文件复制完成\n"
|
|
||||||
|
|
||||||
exit 0
|
|
|
@ -213,7 +213,6 @@ npm_install_sub() {
|
||||||
elif ! type pnpm >/dev/null 2>&1; then
|
elif ! type pnpm >/dev/null 2>&1; then
|
||||||
npm install --production --no-save --registry=https://registry.npm.taobao.org || npm install --production --no-save
|
npm install --production --no-save --registry=https://registry.npm.taobao.org || npm install --production --no-save
|
||||||
else
|
else
|
||||||
echo -e "检测到本机安装了 pnpm,使用 pnpm 替代 ...\n"
|
|
||||||
pnpm install --prod
|
pnpm install --prod
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,14 +90,14 @@ run_normal() {
|
||||||
|
|
||||||
local id=$(cat $list_crontab_user | grep -E "$cmd_task $p1$" | perl -pe "s|.*ID=(.*) $cmd_task $p1$|\1|" | xargs | sed 's/ /","/g')
|
local id=$(cat $list_crontab_user | grep -E "$cmd_task $p1$" | perl -pe "s|.*ID=(.*) $cmd_task $p1$|\1|" | xargs | sed 's/ /","/g')
|
||||||
local begin_time=$(date '+%Y-%m-%d %H:%M:%S')
|
local begin_time=$(date '+%Y-%m-%d %H:%M:%S')
|
||||||
echo -e "## 开始执行... $begin_time\n" >> $log_path
|
echo -e "## 开始执行... $begin_time\n" | tee -a $log_path
|
||||||
update_cron_status "\"$id\"" "0"
|
[[ $id ]] && update_cron_status "\"$id\"" "0"
|
||||||
timeout $command_timeout_time $which_program $p1 2>&1 | tee -a $log_path
|
timeout $command_timeout_time $which_program $p1 2>&1 | tee -a $log_path
|
||||||
. $file_task_after
|
. $file_task_after
|
||||||
update_cron_status "\"$id\"" "1"
|
[[ $id ]] && update_cron_status "\"$id\"" "1"
|
||||||
local end_time=$(date '+%Y-%m-%d %H:%M:%S')
|
local end_time=$(date '+%Y-%m-%d %H:%M:%S')
|
||||||
local diff_time=$(($(date +%s -d "$end_time") - $(date +%s -d "$begin_time")))
|
local diff_time=$(($(date +%s -d "$end_time") - $(date +%s -d "$begin_time")))
|
||||||
echo -e "\n## 执行结束... $end_time 耗时 $diff_time 秒" >> $log_path
|
echo -e "\n## 执行结束... $end_time 耗时 $diff_time 秒" | tee -a $log_path
|
||||||
}
|
}
|
||||||
|
|
||||||
## 并发执行时,设定的 RandomDelay 不会生效,即所有任务立即执行
|
## 并发执行时,设定的 RandomDelay 不会生效,即所有任务立即执行
|
||||||
|
|
|
@ -242,8 +242,6 @@ update_qinglong() {
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fix_config
|
|
||||||
|
|
||||||
[ -f $dir_root/package.json ] && ql_depend_old=$(cat $dir_root/package.json)
|
[ -f $dir_root/package.json ] && ql_depend_old=$(cat $dir_root/package.json)
|
||||||
reset_romote_url ${dir_root} "${github_proxy_url}https://github.com/whyour/qinglong.git"
|
reset_romote_url ${dir_root} "${github_proxy_url}https://github.com/whyour/qinglong.git"
|
||||||
git_pull_scripts $dir_root
|
git_pull_scripts $dir_root
|
||||||
|
@ -295,15 +293,15 @@ reload_pm2() {
|
||||||
pm2 l >/dev/null 2>&1
|
pm2 l >/dev/null 2>&1
|
||||||
|
|
||||||
if [[ $(pm2 info panel 2>/dev/null) ]]; then
|
if [[ $(pm2 info panel 2>/dev/null) ]]; then
|
||||||
pm2 reload panel >/dev/null 2>&1
|
pm2 reload panel --source-map-support --time >/dev/null 2>&1
|
||||||
else
|
else
|
||||||
pm2 start $dir_root/build/app.js -n panel >/dev/null 2>&1
|
pm2 start $dir_root/build/app.js -n panel --source-map-support --time >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $(pm2 info schedule 2>/dev/null) ]]; then
|
if [[ $(pm2 info schedule 2>/dev/null) ]]; then
|
||||||
pm2 reload schedule >/dev/null 2>&1
|
pm2 reload schedule --source-map-support --time >/dev/null 2>&1
|
||||||
else
|
else
|
||||||
pm2 start $dir_root/build/schedule.js -n schedule >/dev/null 2>&1
|
pm2 start $dir_root/build/schedule.js -n schedule --source-map-support --time >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -436,9 +434,9 @@ main() {
|
||||||
echo -e "## 开始执行... $begin_time\n" >> $log_path
|
echo -e "## 开始执行... $begin_time\n" >> $log_path
|
||||||
. $dir_shell/bot.sh | tee -a $log_path
|
. $dir_shell/bot.sh | tee -a $log_path
|
||||||
;;
|
;;
|
||||||
reset)
|
check)
|
||||||
echo -e "## 开始执行... $begin_time\n" >> $log_path
|
echo -e "## 开始执行... $begin_time\n" >> $log_path
|
||||||
. $dir_shell/reset.sh | tee -a $log_path
|
. $dir_shell/check.sh | tee -a $log_path
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo -e "命令输入错误...\n"
|
echo -e "命令输入错误...\n"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user