From 57d24db14a5bba5522e872277be055c6dae4fab1 Mon Sep 17 00:00:00 2001 From: hotyue <52734432+hotyue@users.noreply.github.com> Date: Wed, 1 Apr 2026 06:45:33 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BC=96=E5=86=99=E5=B8=A6=E6=9C=89?= =?UTF-8?q?=E9=9A=8F=E6=9C=BA=E4=BC=91=E7=9C=A0=E9=98=B2=E5=B0=81=E6=8E=A7?= =?UTF-8?q?=E7=9A=84=E4=B8=BB=E6=8E=A7=E5=BC=95=E6=93=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/runner.sh | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/core/runner.sh b/core/runner.sh index e69de29..e1aaa87 100644 --- a/core/runner.sh +++ b/core/runner.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# ========================================================== +# 脚本名称: runner.sh (IP-Sentinel 主控调度引擎) +# 核心功能: 防并发随机延迟启动、加载本地固化配置、调度业务模块 +# ========================================================== + +INSTALL_DIR="/opt/ip_sentinel" +CONFIG_FILE="${INSTALL_DIR}/config.conf" + +# 1. 检查并加载本地冷数据配置 +if [ ! -f "$CONFIG_FILE" ]; then + echo "配置文件丢失,请重新运行 install.sh" + exit 1 +fi +source "$CONFIG_FILE" + +# 2. 全局日志写入函数 (导出给子进程共享使用) +log() { + local module=$1 + local level=$2 + local msg=$3 + # 保证日志目录存在 + mkdir -p "${INSTALL_DIR}/logs" + printf "[$(date '+%Y-%m-%d %H:%M:%S')] [%-5s] [%-7s] [%s] %s\n" "$level" "$module" "$REGION_CODE" "$msg" >> "$LOG_FILE" +} +export -f log +export CONFIG_FILE INSTALL_DIR + +# 3. 防僵尸网络特征 (Cron Jitter) - 核心隐蔽逻辑 +# 随机休眠 0 到 3600 秒 (1小时) 内的任意时间,彻底打散全球并发请求 +JITTER_TIME=$((RANDOM % 3600)) +log "SYSTEM" "INFO" "主控引擎被 Cron 唤醒,进入防并发随机休眠状态: ${JITTER_TIME} 秒..." +sleep $JITTER_TIME + +# 4. 唤醒并调度业务模块 +log "SYSTEM" "INFO" "休眠结束,开始执行养护任务..." + +# 调度 Google 模块 +if [ -x "${INSTALL_DIR}/core/mod_google.sh" ]; then + log "SYSTEM" "INFO" "加载子模块: Google 业务模拟" + # 核心降耗逻辑:使用 nice -n 19 赋予进程最低 CPU 优先级,绝不抢占 VPS 正常业务的资源 + nice -n 19 bash "${INSTALL_DIR}/core/mod_google.sh" +else + log "SYSTEM" "ERROR" "未找到可执行的 Google 模块" +fi + +log "SYSTEM" "INFO" "本轮所有模块调度完毕,哨兵继续隐蔽待命。" \ No newline at end of file