From 7cf7117615947055040e20f9e19e37471dd25295 Mon Sep 17 00:00:00 2001 From: hotyue <52734432+hotyue@users.noreply.github.com> Date: Fri, 17 Apr 2026 05:32:19 +0000 Subject: [PATCH] =?UTF-8?q?fix(core):=20=E5=A2=9E=E5=BC=BA=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=BC=95=E6=93=8E=E5=AE=B9=E9=94=99=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=EF=BC=8C=E5=8A=A0=E5=9B=BA=20Cron=20=E6=B8=85=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=B9=B6=E4=B8=A5=E6=A0=BC=E9=99=90=E5=88=B6?= =?UTF-8?q?=E5=BA=95=E5=B1=82=E7=89=A9=E7=90=86=E6=A0=87=E8=AF=86=E7=AC=A6?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/install.sh | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/core/install.sh b/core/install.sh index 7f40bb2..cf0e53f 100755 --- a/core/install.sh +++ b/core/install.sh @@ -95,12 +95,10 @@ pkill -9 -f "webhook.py" >/dev/null 2>&1 || true pkill -9 -f "agent_daemon.sh" >/dev/null 2>&1 || true pkill -9 -f "runner.sh" >/dev/null 2>&1 || true -# 2. 清除系统定时任务 (Cron) 中的旧版条目 -if crontab -l >/dev/null 2>&1; then - crontab -l | grep -v "ip_sentinel" > /tmp/cron_clean - crontab /tmp/cron_clean - rm -f /tmp/cron_clean -fi +# 2. 清除系统定时任务 (Cron) 中的旧版条目 (安全容错版) +crontab -l 2>/dev/null | grep -v "ip_sentinel" > /tmp/cron_clean || true +[ -f /tmp/cron_clean ] && crontab /tmp/cron_clean 2>/dev/null +rm -f /tmp/cron_clean # 3. 抹除旧版核心代码,杜绝代码冲突 (根据模式分流) if [ "$UPGRADE_MODE" == "true" ]; then @@ -357,7 +355,7 @@ if [ "$UPGRADE_MODE" == "false" ]; then # ================== [v3.5.2 新增: 节点不可变主键与展示别名] ================== IP_HASH=$(echo "${SAFE_PUBLIC_IP:-127.0.0.1}" | md5sum | cut -c 1-4 | tr 'a-z' 'A-Z') - NODE_NAME="$(hostname | cut -c 1-10)-${IP_HASH}" + NODE_NAME="$(hostname | tr -cd 'a-zA-Z0-9' | cut -c 1-10)-${IP_HASH}" NODE_ALIAS="$NODE_NAME" if [[ -n "$TG_TOKEN" ]] && [[ -n "$CHAT_ID" ]]; then @@ -470,7 +468,7 @@ if [ "$UPGRADE_MODE" == "true" ]; then # [v3.5.2 热修复] 兼容老版本没有 NODE_NAME 和 NODE_ALIAS 的情况,无损补齐 if ! grep -q "^NODE_NAME=" "$CONFIG_FILE"; then TMP_HASH=$(echo "${SAFE_PUBLIC_IP:-127.0.0.1}" | md5sum | cut -c 1-4 | tr 'a-z' 'A-Z') - NODE_NAME="$(hostname | cut -c 1-10)-${TMP_HASH}" + NODE_NAME="$(hostname | tr -cd 'a-zA-Z0-9' | cut -c 1-10)-${TMP_HASH}" NODE_ALIAS="$NODE_NAME" echo "NODE_NAME=\"$NODE_NAME\"" >> "$CONFIG_FILE" echo "NODE_ALIAS=\"$NODE_ALIAS\"" >> "$CONFIG_FILE" @@ -519,7 +517,7 @@ chmod +x ${INSTALL_DIR}/core/*.sh # 7. 配置系统定时任务 (高频调度与看门狗) echo -e "\n[7/7] 正在注入系统定时任务与看门狗进程..." -crontab -l 2>/dev/null | grep -v "ip_sentinel" > /tmp/cron_backup +crontab -l 2>/dev/null | grep -v "ip_sentinel" > /tmp/cron_backup || true # 核心养护模块: 每 30 分钟触发一次 echo "*/30 * * * * ${INSTALL_DIR}/core/runner.sh >/dev/null 2>&1" >> /tmp/cron_backup @@ -547,7 +545,7 @@ if [[ -n "$TG_TOKEN" ]] && [[ -n "$CHAT_ID" ]]; then nohup bash "${INSTALL_DIR}/core/agent_daemon.sh" >/dev/null 2>&1 & fi -crontab /tmp/cron_backup +[ -f /tmp/cron_backup ] && crontab /tmp/cron_backup 2>/dev/null rm -f /tmp/cron_backup # ================== [v3.4.0 核心: 状态机驱动的热更新路由] ==================