#!/bin/bash # 数据备份脚本 # 备份 /opt/gamer 的数据到 /opt/backup/data/YYYYMMDD/gamer # 设置变量 SOURCE_DIR="/opt/gamer" BACKUP_ROOT="/opt/backup/data" DATE=$(date +%Y%m%d) BACKUP_DIR="${BACKUP_ROOT}/${DATE}/gamer" # 创建备份目录 mkdir -p "${BACKUP_DIR}" # 备份数据库 echo "[$(date '+%Y-%m-%d %H:%M:%S')] 开始备份数据库..." cp "${SOURCE_DIR}/data.db" "${BACKUP_DIR}/data.db" if [ $? -eq 0 ]; then echo "[$(date '+%Y-%m-%d %H:%M:%S')] 数据库备份完成" else echo "[$(date '+%Y-%m-%d %H:%M:%S')] 数据库备份失败" exit 1 fi # 备份 public 目录 echo "[$(date '+%Y-%m-%d %H:%M:%S')] 开始备份 public 目录..." cp -r "${SOURCE_DIR}/public" "${BACKUP_DIR}/public" if [ $? -eq 0 ]; then echo "[$(date '+%Y-%m-%d %H:%M:%S')] public 目录备份完成" else echo "[$(date '+%Y-%m-%d %H:%M:%S')] public 目录备份失败" exit 1 fi # 记录备份日志 echo "[$(date '+%Y-%m-%d %H:%M:%S')] 备份完成: ${BACKUP_DIR}" # 清理7天前的旧备份(可选) find "${BACKUP_ROOT}" -type d -name "20*" -mtime +7 -exec rm -rf {} \; 2>/dev/null echo "[$(date '+%Y-%m-%d %H:%M:%S')] 旧备份清理完成"