部署
背景
之前部署流程是先在本地打包,压缩后传到服务器临时目录,然后放到目标目录。
将前端包(
dist.zip
)丢到服务器临时目录。进入存放前端包的文件夹。
shcd /app/nginx/nginx1.16.0/html/log_spider
删除以往压缩包。
shrm dist.zip
从临时目录将最新前端包放入当前目录。
shcp /tmp/log_spider/dist.zip ./
备份当前前端包(
mv dist dist_月日_时分
),此时 dist 文件夹没了,如:shmv dist dist_0620_1808
解压当前目录。
shunzip 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