mirror of
https://github.com/hotyue/IP-Sentinel.git
synced 2026-06-28 04:41:41 +08:00
feat: 编写带有随机休眠防封控的主控引擎
This commit is contained in:
@@ -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" "本轮所有模块调度完毕,哨兵继续隐蔽待命。"
|
||||
Reference in New Issue
Block a user