feat(core): 升级舰队巡逻密度,将全局养护频率由 30 分钟缩短至 20 分钟 (每日 72 次) 并对齐所有日志与战报标定

This commit is contained in:
hotyue
2026-04-27 02:05:24 +00:00
parent d24be4da0b
commit 55f7ee0c8c
3 changed files with 9 additions and 7 deletions

View File

@@ -696,8 +696,8 @@ EOF
[Unit]
Description=Timer for IP-Sentinel Runner Service
[Timer]
# [修复] 彻底剔除 OnActiveSec=10s改用严格的日历整点/半点匹配,杜绝 OTA 瞬间的并发走火!
OnCalendar=*:00/30
# [频率优化] 改用严格的 20 分钟步进,杜绝 OTA 瞬间的并发走火!
OnCalendar=*:0/20
RandomizedDelaySec=180
Persistent=true
Unit=ip-sentinel-runner.service
@@ -822,7 +822,8 @@ while true; do
# 强制获取绝对 UTC 时分,免疫系统错误时区
MIN=\$(date -u +%M)
HOUR=\$(date -u +%H)
if [ "\$MIN" == "00" ] || [ "\$MIN" == "30" ]; then
# [频率优化] 匹配 20 分钟步进 (00, 20, 40)
if [ "\$MIN" == "00" ] || [ "\$MIN" == "20" ] || [ "\$MIN" == "40" ]; then
/bin/bash /opt/ip_sentinel/core/runner.sh >/dev/null 2>&1
fi
# [绝对 UTC 锚点] 基于部署时刻的锚点触发热数据更新,天然并发削峰
@@ -860,7 +861,8 @@ EOF
# 🟢 走常规调度路线 (正常的 Linux 或 KVM 型 Alpine)
# ==========================================
crontab -l 2>/dev/null | grep -v "ip_sentinel" > /tmp/cron_backup || true
echo "*/30 * * * * ${INSTALL_DIR}/core/runner.sh >/dev/null 2>&1" >> /tmp/cron_backup
# [频率优化] 调整为 */20
echo "*/20 * * * * ${INSTALL_DIR}/core/runner.sh >/dev/null 2>&1" >> /tmp/cron_backup
# [绝对 UTC 锚点] 每天精确在部署的 UTC 时刻触发
echo "${DEPLOY_UTC_MIN} ${DEPLOY_UTC_HOUR} * * * ${INSTALL_DIR}/core/updater.sh >/dev/null 2>&1" >> /tmp/cron_backup
@@ -982,7 +984,7 @@ else
echo "🎉 边缘节点 (Agent) 部署流程彻底完成!"
fi
echo "📍 你的本地守护区域已锁定为: $REGION_NAME"
echo "⚙️ 哨兵现已开启 [每30分钟] 的高频高拟真养护循环。"
echo "⚙️ 哨兵现已开启 [每20分钟] 的高频高拟真养护循环。"
if [[ -n "$TG_TOKEN" ]]; then
echo "📡 Webhook 监听已启动 (端口: $AGENT_PORT) 并向中枢发送了注册请求。"

View File

@@ -50,7 +50,7 @@ export -f log
export CONFIG_FILE INSTALL_DIR
# 3. 防僵尸网络特征 (Cron Jitter) - 核心隐蔽逻辑
# 配合每 30 分钟的调度周期,将随机休眠控制在 0 到 180 秒内,彻底打散全球并发请求
# 配合每 20 分钟的调度周期,将随机休眠控制在 0 到 180 秒内,彻底打散全球并发请求
if [ -t 1 ]; then
log "SYSTEM" "INFO " "💻 检测到人工终端干预,跳过静默休眠,立即执行任务!"
else

View File

@@ -96,7 +96,7 @@ case "$REGION_CODE" in
*) FLAG="🌐" ;;
esac
# 3. 截取过去 24 小时的日志 (每天48次轮询,保留最新 1000 行足以覆盖单日战报)
# 3. 截取过去 24 小时的日志 (每天72次轮询,保留最新 1000 行足以覆盖单日战报)
LOG_CONTENT=$(tail -n 1000 "$LOG_FILE" 2>/dev/null)
if [ -z "$LOG_CONTENT" ]; then