- Node.js backend server - Frontend application - Backup script - Project specification Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
46 lines
1.4 KiB
Bash
Executable File
46 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 记账本定时备份脚本
|
|
# 备份目录: /opt/backup/data/YYYYMMDD/accountbook
|
|
|
|
# 配置
|
|
SOURCE_DIR="/opt/accountbook"
|
|
BACKUP_ROOT="/opt/backup/data"
|
|
DATE=$(date +%Y%m%d)
|
|
BACKUP_DIR="${BACKUP_ROOT}/${DATE}/accountbook"
|
|
|
|
# 创建备份目录
|
|
mkdir -p "${BACKUP_DIR}"
|
|
|
|
# 备份数据库文件
|
|
if [ -f "${SOURCE_DIR}/accountbook.db" ]; then
|
|
cp "${SOURCE_DIR}/accountbook.db" "${BACKUP_DIR}/accountbook.db"
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 数据库已备份: ${BACKUP_DIR}/accountbook.db"
|
|
else
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 警告: 数据库文件不存在"
|
|
fi
|
|
|
|
# 备份源代码 (可选 - 根据需求可注释掉)
|
|
if [ -d "${SOURCE_DIR}/public" ]; then
|
|
cp -r "${SOURCE_DIR}/public" "${BACKUP_DIR}/"
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] public 目录已备份"
|
|
fi
|
|
|
|
# 备份前端代码
|
|
if [ -d "${SOURCE_DIR}/frontend" ]; then
|
|
cp -r "${SOURCE_DIR}/frontend" "${BACKUP_DIR}/"
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] frontend 目录已备份"
|
|
fi
|
|
|
|
# 备份配置文件
|
|
if [ -f "${SOURCE_DIR}/package.json" ]; then
|
|
cp "${SOURCE_DIR}/package.json" "${BACKUP_DIR}/"
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] package.json 已备份"
|
|
fi
|
|
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 备份完成: ${BACKUP_DIR}"
|
|
|
|
# 清理30天前的旧备份
|
|
find "${BACKUP_ROOT}" -type d -name "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" -mtime +30 -exec rm -rf {} \; 2>/dev/null
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 30天前的旧备份已清理"
|