27
2025
06

自动更新HBLINK 用户ID脚本

#!/bin/bash
set -euo pipefail  # 严格模式:错误退出、未定义变量报错、管道错误捕获

# 配置参数
LOG_FILE="/var/log/subscriber_ids_update.log"
SOURCE_URL="https://database.radioid.net/static/users.json"
DEST_FILE="/opt/subscriber_ids.json"

# 记录日志函数(简化重复代码)
log() {
    echo "[$(date +"%Y-%m-%d %H:%M:%S")] $1" >> "$LOG_FILE"
}

# 主流程
log "开始更新subscriber_ids文件..."

# 步骤1:下载文件
log "尝试下载文件:$SOURCE_URL"
if ! wget -q -O "$DEST_FILE" "$SOURCE_URL"; then
    log "错误:下载失败!请检查网络或URL是否有效。"
    exit 1
fi

# 验证文件有效性
if [ ! -s "$DEST_FILE" ]; then
    log "错误:下载的文件为空或不存在!"
    exit 1
fi
log "文件下载成功,保存至:$DEST_FILE"

# 步骤2:复制到HBlink3并重启服务
log "复制文件到HBlink3目录:/opt/HBlink3/"
if ! cp "$DEST_FILE" "/opt/HBlink3/"; then
    log "错误:复制到HBlink3失败!请检查目录权限。"
    exit 1
fi

log "重启hblink.service..."
if ! systemctl restart hblink.service; then
    log "错误:hblink.service重启失败!"
    exit 1
fi

# 等待服务稳定(根据实际需求调整等待时间)
log "等待15秒让hblink.service稳定..."
sleep 15

# 步骤3:复制到HBmonitor2并重启服务
log "复制文件到HBmonitor2目录:/opt/HBmonitor2/"
if ! cp "$DEST_FILE" "/opt/HBmonitor2/"; then
    log "错误:复制到HBmonitor2失败!请检查目录权限。"
    exit 1
fi

log "重启hbmon.service..."
if ! systemctl restart hbmon.service; then
    log "错误:hbmon.service重启失败!"
    exit 1
fi

# 可选:清理临时文件(根据需求启用)
# log "清理临时文件..."
# rm "$DEST_FILE"

log "操作完成:文件更新成功,服务已重启。"