#!/usr/bin/env bash # ============================================================================== # Mac mini 核心数据自动备份至极空间 Z4 (20TB NAS) 脚本 # 每天凌晨 03:30 自动打包备份 Vaultwarden 密码库、Sun-Panel 导航页及 Homelab 配置 # ============================================================================== set -euo pipefail NAS_BACKUP_DIR="/Users/ixvii0iv/nas/个人空间/MacMini_Backups" TIMESTAMP=$(date '+%Y%m%d_%H%M%S') # 确保极空间已挂载 /Users/ixvii0iv/homelab/scripts/mount-zspace.sh >/dev/null 2>&1 || true if [ ! -d "/Users/ixvii0iv/nas/个人空间" ]; then echo "[$(date '+%Y-%m-%d %H:%M:%S')] [WARN] 极空间未挂载,跳过本次备份" exit 0 fi mkdir -p "$NAS_BACKUP_DIR" ARCHIVE="$NAS_BACKUP_DIR/homelab_backup_${TIMESTAMP}.tar.gz" tar -czf "$ARCHIVE" \ -C /Users/ixvii0iv/homelab \ stacks/vaultwarden/data \ stacks/portal \ configs \ scripts \ README.md PLAN.md CHANGELOG.md 2>/dev/null || true # 保留最近 30 份备份 ls -1t "$NAS_BACKUP_DIR"/homelab_backup_*.tar.gz 2>/dev/null | tail -n +31 | xargs rm -f 2>/dev/null || true echo "[$(date '+%Y-%m-%d %H:%M:%S')] [OK] 已备份至极空间: $ARCHIVE"