47 lines
1.4 KiB
Bash
Executable File
47 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# 定义日志函数,用于输出带有时间戳的日志
|
|
log() {
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] $1"
|
|
}
|
|
|
|
# 定义常量
|
|
URL="https://0e25b110.ghelper.me/subs/clash/88602cf20e25b1105f3ba0a433c1a35b"
|
|
CLASH_FILE="./index/proxy/clash.yml"
|
|
BACKUP_FILE="./index/proxy/clash_last.yml"
|
|
|
|
log "开始下载 Clash 配置文件..."
|
|
|
|
# 确保目标目录存在
|
|
mkdir -p "$(dirname "$CLASH_FILE")" 2>/dev/null
|
|
log "目录 $(dirname "$CLASH_FILE") 存在。"
|
|
|
|
# 尝试下载文件
|
|
if curl -sS --fail -o "$CLASH_FILE" "$URL"; then
|
|
log "Clash 配置文件下载成功。"
|
|
|
|
# 设置权限为 777
|
|
chmod 777 "$CLASH_FILE"
|
|
log "设置文件 $CLASH_FILE 权限为 777。"
|
|
|
|
# 复制为备份文件并设置权限
|
|
cp -f "$CLASH_FILE" "$BACKUP_FILE"
|
|
chmod 777 "$BACKUP_FILE"
|
|
log "已将配置文件复制到备份文件 $BACKUP_FILE,并设置权限为 777。"
|
|
|
|
log "下载和备份操作已完成。"
|
|
else
|
|
log "下载失败,尝试从备份恢复..."
|
|
|
|
# 检查备份文件是否存在
|
|
if [ -f "$BACKUP_FILE" ]; then
|
|
cp -f "$BACKUP_FILE" "$CLASH_FILE"
|
|
chmod 777 "$CLASH_FILE"
|
|
log "已从备份文件 $BACKUP_FILE 恢复配置文件,并设置权限为 777。"
|
|
else
|
|
log "错误:备份文件 $BACKUP_FILE 不存在,无法恢复。"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
log "Clash 配置文件处理完成。" |