103 lines
2.9 KiB
Bash
Executable File
103 lines
2.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
|
|
|
|
# 定义常量
|
|
# 标准配置文件URL
|
|
URL_STANDARD="https://zh.momobaby.org/download/clash/49ddd5c72bcd15c5cd97a07b936d43862cd08cb49ce9633c17ee313156b8f4e2?config_name=Config"
|
|
# vless配置文件URL
|
|
URL_VLESS="https://zh.momobaby.org/download/clash/49ddd5c72bcd15c5cd97a07b936d43862cd08cb49ce9633c17ee313156b8f4e2?config_name=Config"
|
|
|
|
# 标准配置文件路径
|
|
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"
|
|
|
|
|
|
|
|
|
|
# 定义带颜色和日志级别的日志函数
|
|
log() {
|
|
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"
|
|
}
|
|
|
|
# 创建配置目录
|
|
mkdir -p "$(dirname "$CLASH_FILE")" 2>/dev/null
|
|
if [ $? -eq 0 ]; then
|
|
log INFO "配置目录 $(dirname "$CLASH_FILE") 已创建或已存在。"
|
|
else
|
|
log ERROR "无法创建配置目录 $(dirname "$CLASH_FILE")"
|
|
exit 1
|
|
fi
|
|
|
|
# 配置文件处理函数
|
|
process_config() {
|
|
local url=$1
|
|
local output_file=$2
|
|
local backup_file=$3
|
|
local config_name=$4
|
|
|
|
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。"
|
|
|
|
# 创建备份
|
|
cp -f "$output_file" "$backup_file"
|
|
chmod 777 "$backup_file"
|
|
log INFO "已将${config_name}配置文件备份到 $backup_file"
|
|
else
|
|
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
|
|
return 0
|
|
}
|
|
|
|
# 处理标准配置文件
|
|
process_config "$URL_STANDARD" "$CLASH_FILE" "$BACKUP_STANDARD" "标准"
|
|
STANDARD_RESULT=$?
|
|
|
|
# 处理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 |