#!/bin/bash #本地压缩文件名 file_name="saber.zip" #测试服器上的目录地址 file_path="testmanger.hczcxx.cn" #测试服务器上的演示地址 demo_url="http://192.168.0.109:1888/" #测试服务器上的登录密码 passwd="admin123@" # 打包前的准备 node ./scripts/build.js # 执行打包命令 vue-cli-service build # 恢复配置文件 node ./scripts/restore.js # 排除打包文件 if [ $1 == "wgt" ]; then node ./scripts/public.js fi # 执行打包为zip node ./scripts/zip.js current_time=$(date "+%Y%m%d%H%M%S") # 上传到测试服务器 function testServer() { expect -c " spawn scp ./zip/${file_name} root@192.168.0.109:/www/wwwroot/${file_path} expect { \"yes/no\" {send \"yes\r\";exp_continue;} \"*password\" {set timeout 500;send \"${passwd}\r\";} } expect eof" #服务器上的相关操作 /usr/bin/expect << EOF set time 30 spawn ssh root@192.168.0.109 expect { "*yes/no" { send "yes\r"; exp_continue } "*password:" { send "${passwd}\r" } } # 进入当前项目的目录 expect "*]#" send "cd /www/wwwroot/${file_path}\r" # 删除 css 目录 expect "*]#" send "rm -rf css\r" # 删除 js 目录 expect "*]#" send "rm -rf js\r" # 解压上传的文件压缩包 expect "*]#" send "unzip -o ${file_name}\r" # 备份上一次的压缩文件 expect "*]#" send "mv ./backup/${file_name} ./backup/${current_time}_${file_name}\r" # 执行清理备份文件脚本 expect "*]#" send "node ./backup.js\r" # 移动当前文件到备份目录 expect "*]#" send "mv ./${file_name} ./backup/${file_name}\r" # 退出 send "exit\r" expect eof EOF echo "编译打包后自动部署到测试服务器上完成" echo "测试服务器地址:${demo_url}" } # 删除 public 等目录 function delPublic() { echo "准备移除 public 下的静态目录文件" #服务器上的相关操作 /usr/bin/expect << EOF set time 30 spawn ssh root@192.168.0.109 expect { "*yes/no" { send "yes\r"; exp_continue } "*password:" { send "${passwd}\r" } } # 进入当前项目的目录 expect "*]#" send "cd /www/wwwroot/${file_path}\r" # 删除 app 目录 expect "*]#" send "rm -rf app\r" # 删除 cdn 目录 expect "*]#" send "rm -rf cdn\r" # 删除 img 目录 expect "*]#" send "rm -rf img\r" # 删除 svg 目录 expect "*]#" send "rm -rf svg\r" # 删除 util 目录 expect "*]#" send "rm -rf util\r" # 退出 send "exit\r" expect eof EOF echo "public 下的静态目录文件移除完成" } # 上传到测试服务器 if [ $2 == "test" ]; then if [ $1 == "all" ]; then delPublic fi testServer else echo "编译完成" fi