kgrag/kgrag_migration/01_copy_files_by_ship.sh
2026-06-30 13:35:52 +08:00

101 lines
3.3 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# =============================================================================
# 步骤 1从原数据机拉取指定舰船号的文件到迁移目标机按舰版
# 在【迁移目标机】上执行本脚本
# 配置项TARGET_SHIPS 等)请修改 migration_config.sh
# =============================================================================
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
source "${SCRIPT_DIR}/migration_config.sh"
set -e
if [ -z "$TARGET_SHIPS" ]; then
echo "错误migration_config.sh 中 TARGET_SHIPS 未设置。"
echo "如需拉取全部文件,请使用 01_copy_files.sh。"
exit 1
fi
# 构造 rsync 舰船过滤参数
SHIP_FILTERS=()
for ship in $TARGET_SHIPS; do
SHIP_FILTERS+=("--include=${ship}-*")
done
SHIP_FILTERS+=("--exclude=*")
echo "=========================================="
echo " kgrag 文件迁移脚本 - 步骤 1按舰版"
echo " 原数据机: ${SRC_SERVER}:${SRC_APP_DIR}"
echo " 目标代码目录: ${DST_CODE_DIR}"
echo " 目标文件目录: ${DST_FILES_DIR}"
echo " 目标舰船号: ${TARGET_SHIPS}"
echo "=========================================="
mkdir -p "${DST_CODE_DIR}"
mkdir -p "${DST_FILES_DIR}/uploads_v1"
mkdir -p "${DST_CODE_DIR}/kg_output"
mkdir -p "${DST_CODE_DIR}/fault_wenjian"
echo ""
echo "[1/6] 迁移原始文档 → ${DST_FILES_DIR}/ (仅 ${TARGET_SHIPS}..."
rsync -avz --progress ${RSYNC_EXTRA} \
-e "ssh -p ${SRC_SSH_PORT}" \
--exclude="uploads_v1/" \
"${SHIP_FILTERS[@]}" \
"${SRC_SERVER}:${SRC_APP_DIR}/files/" \
"${DST_FILES_DIR}/"
echo ""
echo "[2/6] 迁移高亮注释 PDF → ${DST_FILES_DIR}/uploads_v1/ (全量)..."
rsync -avz --progress ${RSYNC_EXTRA} \
-e "ssh -p ${SRC_SSH_PORT}" \
"${SRC_SERVER}:${SRC_APP_DIR}/files/uploads_v1/" \
"${DST_FILES_DIR}/uploads_v1/"
echo ""
echo "[3/6] 迁移抽取结果 JSON → ${DST_CODE_DIR}/kg_output/ (仅 ${TARGET_SHIPS}..."
rsync -avz --progress ${RSYNC_EXTRA} \
-e "ssh -p ${SRC_SSH_PORT}" \
"${SHIP_FILTERS[@]}" \
"${SRC_SERVER}:${SRC_APP_DIR}/kg_output/" \
"${DST_CODE_DIR}/kg_output/"
echo ""
echo "[4/6] 迁移 kg_snapshot.json → ${DST_CODE_DIR}/ (全量)..."
rsync -avz --progress ${RSYNC_EXTRA} \
-e "ssh -p ${SRC_SSH_PORT}" \
"${SRC_SERVER}:${SRC_APP_DIR}/kg_snapshot.json" \
"${DST_CODE_DIR}/kg_snapshot.json"
echo ""
echo "[5/6] 迁移 fault_wenjian/ → ${DST_CODE_DIR}/fault_wenjian/ (仅 ${TARGET_SHIPS}..."
rsync -avz --progress ${RSYNC_EXTRA} \
-e "ssh -p ${SRC_SSH_PORT}" \
"${SHIP_FILTERS[@]}" \
"${SRC_SERVER}:${SRC_APP_DIR}/fault_wenjian/" \
"${DST_CODE_DIR}/fault_wenjian/"
echo ""
echo "[6/6] 迁移代码文件 → ${DST_CODE_DIR}/ ..."
rsync -avz --progress ${RSYNC_EXTRA} \
-e "ssh -p ${SRC_SSH_PORT}" \
--exclude="__pycache__/" \
--exclude="*.pyc" \
--exclude="*.log" \
--exclude="files/" \
--exclude="kg_output/" \
--exclude="kg_snapshot.json" \
--exclude="fault_wenjian/" \
--exclude="mineru_output/" \
"${SRC_SERVER}:${SRC_APP_DIR}/" \
"${DST_CODE_DIR}/"
echo ""
echo "=========================================="
echo " 文件迁移完成!已拉取舰船号: ${TARGET_SHIPS}"
echo ""
echo " 下一步:"
echo " 1. python split_by_ship.py"
echo " 2. bash 02_load_neo4j_by_ship.sh"
echo "=========================================="