Files
o.nmgjg.com.cn/clash_sync.sh

103 lines
2.9 KiB
Bash
Raw Permalink Normal View History

#!/bin/sh
2025-07-07 10:23:42 +08:00
# 定义常量
# 标准配置文件URL
2026-02-14 23:01:07 +08:00
URL_STANDARD="https://zh.momobaby.org/download/clash/b602cfa9a6a1584e5ad7f46129e409b266f408f849921406ac66fa0c49c437cc?config_name=Config"
2025-07-07 10:23:42 +08:00
# vless配置文件URL
2026-02-14 23:01:07 +08:00
URL_VLESS="https://zh.momobaby.org/download/clash/b602cfa9a6a1584e5ad7f46129e409b266f408f849921406ac66fa0c49c437cc?config_name=Config"
2025-07-07 10:23:42 +08:00
# 标准配置文件路径
CLASH_FILE="./index/proxy/clash.yml"
BACKUP_STANDARD="./index/proxy/clash_last.yml"
# vless配置文件路径
CLASH_VLESS_FILE="./index/proxy/clash_v.yml"
BACKUP_VLESS="./index/proxy/clash_v_last.yml"
2025-07-07 10:18:42 +08:00
# 定义带颜色和日志级别的日志函数
log() {
2025-07-07 10:18:42 +08:00
local level=$1
local message=$2
local color_code=""
# 根据日志级别设置颜色
case $level in
INFO)
color_code="\033[32m" # 绿色
;;
WARNING)
color_code="\033[33m" # 黄色
;;
ERROR)
color_code="\033[31m" # 红色
;;
*)
color_code="\033[0m" # 默认
;;
esac
# 格式化输出
printf "$(date '+%Y-%m-%d %H:%M:%S') ${color_code}[$level]\033[0m $message\n"
}
2025-07-07 10:18:42 +08:00
# 创建配置目录
mkdir -p "$(dirname "$CLASH_FILE")" 2>/dev/null
2025-07-07 10:18:42 +08:00
if [ $? -eq 0 ]; then
log INFO "配置目录 $(dirname "$CLASH_FILE") 已创建或已存在。"
else
log ERROR "无法创建配置目录 $(dirname "$CLASH_FILE")"
exit 1
fi
2025-07-07 10:18:42 +08:00
# 配置文件处理函数
process_config() {
local url=$1
local output_file=$2
local backup_file=$3
local config_name=$4
2025-07-07 10:18:42 +08:00
log INFO "开始下载 ${config_name} 配置文件..."
if curl -sS --fail -o "$output_file" "$url"; then
log INFO "${config_name} 配置文件下载成功。"
chmod 777 "$output_file"
log INFO "设置文件 $output_file 权限为 777。"
2025-07-07 10:18:42 +08:00
# 创建备份
cp -f "$output_file" "$backup_file"
chmod 777 "$backup_file"
log INFO "已将${config_name}配置文件备份到 $backup_file"
else
2025-07-07 10:18:42 +08:00
log ERROR "${config_name} 下载失败,尝试从备份恢复..."
if [ -f "$backup_file" ]; then
cp -f "$backup_file" "$output_file"
chmod 777 "$output_file"
log WARNING "已从备份恢复 ${config_name} 配置文件: $output_file"
else
log ERROR "错误:${config_name}备份文件不存在,无法恢复: $backup_file"
return 1
fi
fi
2025-07-07 10:18:42 +08:00
return 0
}
# 处理标准配置文件
process_config "$URL_STANDARD" "$CLASH_FILE" "$BACKUP_STANDARD" "标准"
STANDARD_RESULT=$?
2025-07-07 10:18:42 +08:00
# 处理vless配置文件
process_config "$URL_VLESS" "$CLASH_VLESS_FILE" "$BACKUP_VLESS" "vless协议"
VLESS_RESULT=$?
# 检查最终结果
if [ $STANDARD_RESULT -eq 0 ] && [ $VLESS_RESULT -eq 0 ]; then
log INFO "所有配置文件处理完成。"
exit 0
else
log WARNING "配置文件处理完成,但部分操作失败。"
exit 1
fi