34 lines
1.2 KiB
Bash
Executable File
34 lines
1.2 KiB
Bash
Executable File
#!/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/sun-panel/conf \
|
|
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"
|