Initial commit: accountbook project
- Node.js backend server - Frontend application - Backup script - Project specification Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
#!/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天前的旧备份已清理"
|
||||
Reference in New Issue
Block a user