优化部署脚本执行报错问题

This commit is contained in:
allen_xiong
2026-03-23 19:18:39 +08:00
parent 7bd5048bf8
commit e87fe65b20
+7 -22
View File
@@ -14,35 +14,20 @@ deploy-to-server:
# 确保目标目录存在(若不存在则创建,用于后续判断和备份逻辑的基础)
- mkdir -p /mnt/data/pis/python3/DV3AdminDev
script:
# --- 新增:备份逻辑 (优化版) ---
# --- 新增:备份逻辑 ---
# 定义变量
- TARGET_DIR="/mnt/data/pis/python3/DV3AdminDev"
- BACKUP_DATE=$(date +%Y%m%d)
- BACKUP_DIR="${TARGET_DIR}_bak_${BACKUP_DATE}"
# 检查目标目录是否为空或是否存在有效文件,若存在则进行备份
# 优化点:
# 1. 使用 { ... } 将所有相关命令包裹在一个 - 条目中,确保在同一个 shell 会话执行。
# 2. 在执行 mv 前,先 cd / 退出目标目录,避免 "Resource busy" 错误。
# 3. 增加错误检查,如果备份失败则退出脚本,防止数据覆盖。
- |
if [ -d "$TARGET_DIR" ] && [ "$(ls -A "$TARGET_DIR")" ]; then
echo "检测到现有文件,开始备份至路径 $BACKUP_DIR"
# 退出目标目录,防止 "Resource busy"
cd /
# 执行移动操作
if ! mv "$TARGET_DIR" "$BACKUP_DIR"; then
echo "错误:备份失败,无法移动目录。终止部署以防止数据丢失。"
exit 1
fi
# 重新创建空的目标目录
mkdir -p "$TARGET_DIR"
echo "备份成功完成。"
# 使用 ls -A 检查目录下是否有非隐藏文件或所有文件(包括隐藏),如果有内容则备份
- if [ -d "$TARGET_DIR" ] && [ "$(ls -A $TARGET_DIR)" ]; then
echo "备份文件至路径 $BACKUP_DIR";
cp -a "$TARGET_DIR" "$BACKUP_DIR";
mkdir -p "$TARGET_DIR";
else
echo "目标目录为空或不存在,跳过备份步骤。"
echo "没有文件需要部署或文件夹为空";
fi
# --- 新增:代码同步逻辑(排除特定文件) ---