Skip to content

需要填写下列文件中的

  • SOURCE_PATH
  • TARGET_DIR

配置参数

🌟 压缩脚本 (pack_artifacts.sh) 🌟

bash
#!/bin/bash
# 填写需要压缩的路径
SOURCE_PATH="/xxxxx"

# 当前用户有权限的存放压缩包的路径,用于到指定目录下载压缩包到本地
TARGET_DIR="${HOME}/xxxxx"  

TIMESTAMP=$(date +%Y%m%d_%H%M%S)
COMPRESS_NAME="bundle_framework_${TIMESTAMP}.tar.gz"

# 增强错误处理
set -e

# 检查源目录是否存在
if [ ! -d "${SOURCE_PATH}" ]; then
    echo "[ERROR] 源目录不存在: ${SOURCE_PATH}"
    exit 1
fi

# 创建目标目录(带权限检查)
if ! mkdir -p "${TARGET_DIR}"; then
    echo "[ERROR] 无法创建目录 ${TARGET_DIR}"
    echo "解决方案:"
    echo "1. 尝试手动创建目录: mkdir -p ${TARGET_DIR}"
    echo "2. 检查目录权限: ls -ld ${HOME}/lty"
    exit 1
fi

# 执行压缩(增加详细输出)
echo "正在压缩: ${SOURCE_PATH}"
if tar -czf "${TARGET_DIR}/${COMPRESS_NAME}" -C "${SOURCE_PATH}" .; then
    echo "---------------------------------------------"
    echo "✅ 压缩成功!文件路径: ${TARGET_DIR}/${COMPRESS_NAME}"
    echo "文件大小: $(du -h "${TARGET_DIR}/${COMPRESS_NAME}" | cut -f1)"
else
    echo "[ERROR] 压缩过程失败,请检查磁盘空间和权限"
    exit 1
fi

🛠️ 使用方法:

bash
# 给脚本添加执行权限
chmod +x pack_artifacts.sh

# 执行脚本(不再需要sudo)
./pack_artifacts.sh
  1. 解压脚本 (decompress.sh) - 放在目标服务器执行

需要填写下列文件中的

  • UPLOAD_DIR
  • TARGET_DIR

配置参数

bash
#!/bin/bash

# 从本地上传压缩包的存放路径
UPLOAD_DIR="${HOME}/xxxxx"

# 压缩包解压到目标路径
TARGET_DIR="/xxxxx"

# 获取最新的压缩包
LATEST_TAR=$(ls -t "${UPLOAD_DIR}"/bundle_framework_*.tar.gz 2>/dev/null | head -n1)

# 检查压缩文件是否存在
if [ -z "${LATEST_TAR}" ]; then
    echo "错误:未找到可用的压缩文件"
    exit 1
fi

# 创建目标目录(如果不存在)
mkdir -p "${TARGET_DIR}"

# 安全清空目录(保留目录结构)
find "${TARGET_DIR}" -mindepth 1 -maxdepth 1 -exec rm -rf {} +

# 执行解压
tar -xzf "${LATEST_TAR}" -C "${TARGET_DIR}"

echo "解压完成!文件已更新至:${TARGET_DIR}"

策略选择说明:

  1. 采用「先清空目录再解压」的方式,因为:

    • 可以避免新旧文件混杂导致的版本不一致问题
    • 保留目录结构避免权限问题
    • 比直接覆盖更彻底,处理隐藏文件更安全
  2. 安全机制:

    • 压缩文件包含时间戳,方便版本追溯
    • find命令清空目录比rm -rf更安全
    • 严格的路径检查防止误操作
    • 自动获取最新压缩包

使用流程:

  1. 在源服务器执行 pack_artifacts.sh
  2. 手动下载 例如:/mnt/data/lty/test_out 下的最新压缩包
  3. 上传压缩包到目标服务器的 例如:~/ohos_master/test_out
  4. 在目标服务器执行 decompress.sh

建议:

  1. 首次使用前给脚本添加执行权限:
bash
chmod +x compress.sh decompress.sh

浪漫宇宙旗下知识库分享站

访客数--
|
访问量--