注意:
1、 pm2上项目名称和项目所在文件保持一致
2、 设置项目所在路径、备份路径
3、 此项目新代码是用zip格式压缩
4、 压缩包与此脚本放在同目录下
5、 备份的是除依赖包以外所有的文件
# pm2上的项目名称
proj_name=cable-head-h5
# proj_name=testname
# 项目路径
proj_path=/home/esh
# 备份路径
# bak_path=/home/esh/h5_version
bak_path=/home/esh/testbak
# 获取当前时间
time=$(date "+%Y%m%d-%H%M%S")
echo "当前时间:""$time"
# 备份及删除原有文件
cd $proj_path/$proj_name
tar -zcvf $bak_path/bak_$time.tar.gz --exclude node_modules *
rm -rf $proj_path/$proj_name/* $proj_path/$proj_name/.*
# 复制新代码到项目路径并解压
cd -
cp $proj_name.zip $proj_path/$proj_name
cd -
unzip $proj_name.zip
# 下载依赖包
npm i
# 重新启动pm2项目
pm2 restart $proj_name