4897c6e11c
阶段三:建立监控告警体系 - 集成Sentry错误监控:安装依赖,创建配置文件,初始化Sentry - 配置性能监控:创建监控工具类,实现健康检查API - 更新环境变量模板,添加Sentry和数据库配置 阶段四:配置生产环境 - 创建生产环境变量模板 - 创建Dockerfile和docker-compose.prod.yml - 创建备份和恢复脚本 - 设置脚本执行权限
70 lines
1.4 KiB
Bash
Executable File
70 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 恢复脚本
|
|
# 用法: ./scripts/restore.sh <backup_file.tar.gz>
|
|
|
|
set -e
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "错误: 请指定备份文件"
|
|
echo "用法: ./scripts/restore.sh <backup_file.tar.gz>"
|
|
exit 1
|
|
fi
|
|
|
|
BACKUP_FILE="$1"
|
|
|
|
if [ ! -f "$BACKUP_FILE" ]; then
|
|
echo "错误: 备份文件不存在: $BACKUP_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
echo "警告: 此操作将覆盖当前数据!"
|
|
read -p "确认继续? (yes/no): " confirm
|
|
|
|
if [ "$confirm" != "yes" ]; then
|
|
echo "操作已取消"
|
|
exit 0
|
|
fi
|
|
|
|
# 创建临时目录
|
|
TEMP_DIR="./temp_restore_$(date +%s)"
|
|
mkdir -p "$TEMP_DIR"
|
|
|
|
echo "解压备份..."
|
|
tar -xzf "$BACKUP_FILE" -C "$TEMP_DIR"
|
|
|
|
# 获取备份目录名
|
|
BACKUP_DIR_NAME=$(ls "$TEMP_DIR")
|
|
BACKUP_PATH="$TEMP_DIR/$BACKUP_DIR_NAME"
|
|
|
|
# 恢复数据库
|
|
if [ -f "$BACKUP_PATH/database.db" ]; then
|
|
echo "恢复数据库..."
|
|
cp "$BACKUP_PATH/database.db" ./data/prod.db
|
|
else
|
|
echo "警告: 备份中没有数据库文件"
|
|
fi
|
|
|
|
# 恢复上传文件
|
|
if [ -d "$BACKUP_PATH/uploads" ]; then
|
|
echo "恢复上传文件..."
|
|
rm -rf ./uploads/*
|
|
cp -r "$BACKUP_PATH/uploads"/* ./uploads/ 2>/dev/null || true
|
|
else
|
|
echo "警告: 备份中没有uploads目录"
|
|
fi
|
|
|
|
# 恢复配置
|
|
if [ -f "$BACKUP_PATH/.env.production" ]; then
|
|
echo "恢复配置..."
|
|
cp "$BACKUP_PATH/.env.production" ./.env.production
|
|
else
|
|
echo "警告: 备份中没有配置文件"
|
|
fi
|
|
|
|
# 清理临时文件
|
|
rm -rf "$TEMP_DIR"
|
|
|
|
echo "恢复完成!"
|
|
echo "请重启应用以使更改生效"
|