Inspire - Capo Productions
部署 
背景 
之前部署流程是先在本地打包,压缩后传到服务器临时目录,然后放到目标目录。
- 将前端包( - dist.zip)丢到服务器临时目录。
- 进入存放前端包的文件夹。 sh- cd /app/nginx/nginx1.16.0/html/log_spider
- 删除以往压缩包。 sh- rm dist.zip
- 从临时目录将最新前端包放入当前目录。 sh- cp /tmp/log_spider/dist.zip ./
- 备份当前前端包( - mv dist dist_月日_时分),此时 dist 文件夹没了,如:sh- mv dist dist_0620_1808
- 解压当前目录。 sh- unzip dist.zip
这一套流程下来,不仅耗时长,而且容易出错。
使用可执行脚本 
创建脚本 
在临时目录 /tmp/log_spider 新建部署脚本 touch deploy.sh,内容如下:
sh
#!/bin/bash
# 1. 进入存放前端包的文件夹
cd /app/nginx/nginx1.16.0/html/log_spider
echo "1. 进入目录 /app/nginx/nginx1.16.0/html/log_spider"
# 2. 删除以往压缩包
# 检查 dist.zip 文件是否存在
if [ -f "dist.zip" ]; then
    # 如果存在,则删除该文件
    echo "2. 删除 dist.zip 文件..."
    rm "dist.zip"
else
    echo "2. dist.zip 文件不存在,无需删除。"
fi
# 3. 从临时目录将最新前端包放入当前目录
cp /tmp/log_spider/dist.zip ./
echo "3. 放入前端包 dist.zip"
# 4. 备份当前前端包
# 获取当前日期和时间的格式化字符串,格式为月日时分,例如0808_1622
timestamp=$(date +"%m%d_%H%M")
# 原始目录名
original_dir="dist"
# 新目录名,包括日期时间后缀
new_dir="dist_${timestamp}"
# 执行重命名操作
mv "${original_dir}" "${new_dir}"
# 输出结果
echo "4. 目录 ${original_dir} 已重命名为 ${new_dir}"
# 5. 解压当前目录
unzip dist.zip
echo "5. 解压成功"赋予脚本可执行权限 
sh
chmod +x deploy.sh执行脚本文件 
在当前目录执行,如果脚本文件在当前目录,直接使用 ./ 前缀执行它。
sh
./deploy.sh