#!/bin/bash # 检查备份变量 if [ -z "$HF_TOKEN" ] || [ -z "$DATASET_ID" ]; then echo "⚠️ 缺少 HF_TOKEN 或 DATASET_ID,备份功能未启用" exec java ${JVM_OPTS} -jar /opt/halo/halo.jar exit 0 fi # 设置默认值 DATASET_N=${DATASET_N:-10} # 默认保留最新 10 个备份 SYNC_INTERVAL=${SYNC_INTERVAL:-36000} # 默认同步间隔 36000 秒(10小时) BACKUP_DIR="$HOME/.halo2" BACKUP_PREFIX="halo_backup_" BACKUP_EXT=".tar.gz" HF_BRANCH="main" # 打印消息到控制台 print_message() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" } # 检查并创建 Hugging Face 数据集(如果不存在) create_dataset() { print_message "检查 Hugging Face 数据集 '${DATASET_ID}' 是否存在..." python3 < dataset_n: to_delete = backup_files[:-dataset_n] for old_file in to_delete: api.delete_file(path_in_repo=old_file, repo_id=repo_id, repo_type="dataset", revision=hf_branch) print(f"🗑️ 已删除过期备份(分支: {hf_branch}):{old_file}") except Exception as e: print(f"⚠️ 备份失败:{str(e)}") EOF # 清理本地临时备份文件和目录 rm -f "$backup_path" rm -rf "$temp_dir" print_message "✅ 备份完成:${backup_file}" # 使用 super_squash_history 压缩 commit 历史 print_message "开始压缩 commit 历史..." python3 <&1