added:增加Linux-server

This commit is contained in:
Vaica committed 2026-06-21 20:42:44 +08:00
1 parent 6fe4e9d23f
commit d78f3f811b
90 files changed
+16784 -1

No files matched your search

+138
View File
@@ -0,0 +1,138 @@
#!/bin/bash
# Write Server 恢复脚本
# 从备份恢复数据
set -e
echo "==================================="
echo " Write Server 恢复脚本"
echo "==================================="
# 检查参数
if [ -z "$1" ]; then
echo "用法: $0 <备份文件>"
echo ""
echo "示例: $0 backups/write-server-20260101_120000.tar.gz"
echo ""
echo "可用的备份文件:"
ls -lh backups/write-server-*.tar.gz 2>/dev/null || echo " 无备份文件"
exit 1
fi
BACKUP_FILE="$1"
# 检查备份文件是否存在
if [ ! -f "$BACKUP_FILE" ]; then
echo "错误: 备份文件不存在: $BACKUP_FILE"
exit 1
fi
echo "备份文件: $BACKUP_FILE"
echo "备份大小: $(du -h "$BACKUP_FILE" | cut -f1)"
echo ""
# 确认恢复
read -p "确定要恢复此备份吗?这将覆盖当前数据 (y/N): " -n 1 -r
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "已取消恢复"
exit 0
fi
# 停止服务
echo "1. 停止服务..."
if command -v pm2 &> /dev/null; then
pm2 stop write-server 2>/dev/null || true
fi
if command -v systemctl &> /dev/null; then
sudo systemctl stop write-server 2>/dev/null || true
fi
# 创建临时目录
TEMP_DIR=$(mktemp -d)
trap "rm -rf $TEMP_DIR" EXIT
# 解压备份
echo "2. 解压备份..."
tar -xzf "$BACKUP_FILE" -C "$TEMP_DIR"
# 恢复配置文件
echo "3. 恢复配置文件..."
if [ -f "$TEMP_DIR/.env" ]; then
cp "$TEMP_DIR/.env" .env
echo " 已恢复 .env"
fi
if [ -f "$TEMP_DIR/package.json" ]; then
# 不覆盖 package.json,只显示差异
echo " package.json 已存在,跳过"
fi
# 恢复回收站
echo "4. 恢复回收站..."
if [ -d "$TEMP_DIR/recycle" ]; then
rm -rf recycle
cp -r "$TEMP_DIR/recycle" recycle
echo " 已恢复回收站"
fi
# 恢复博客内容
if [ -d "$TEMP_DIR/blog" ]; then
echo "5. 恢复博客内容..."
# 加载环境变量
if [ -f .env ]; then
source .env
fi
if [ -n "$BLOG_ROOT" ] && [ -d "$BLOG_ROOT" ]; then
# 恢复 content 目录
if [ -d "$TEMP_DIR/blog/content" ]; then
echo " 恢复 content 目录..."
cp -r "$TEMP_DIR/blog/content/"* "$BLOG_ROOT/content/" 2>/dev/null || true
fi
# 恢复配置文件
if [ -f "$TEMP_DIR/blog/hugo.toml" ]; then
echo " 恢复 hugo.toml..."
cp "$TEMP_DIR/blog/hugo.toml" "$BLOG_ROOT/"
fi
echo " 博客内容已恢复到: $BLOG_ROOT"
else
echo " 警告: BLOG_ROOT 未配置或不存在,跳过博客内容恢复"
fi
else
echo "5. 跳过博客内容恢复(备份中不包含)"
fi
# 恢复 Nginx 配置
echo "6. 恢复 Nginx 配置..."
if [ -d "$TEMP_DIR/nginx" ]; then
mkdir -p nginx
cp -r "$TEMP_DIR/nginx/"* nginx/ 2>/dev/null || true
echo " 已恢复 Nginx 配置"
fi
# 重新安装依赖
echo "7. 重新安装依赖..."
npm install
# 重新构建
echo "8. 重新构建..."
npm run build
# 启动服务
echo "9. 启动服务..."
if command -v pm2 &> /dev/null; then
pm2 start npm --name "write-server" -- run start
fi
echo ""
echo "==================================="
echo " 恢复完成!"
echo "==================================="
echo ""
echo "服务已启动,请检查是否正常运行"
echo ""