expect+ssh 本地打包vue上传到服务器发布到测试环境脚本

2021-03-04 12:17:59 浏览数 (1)

先说一下大概思路 : 1, 首先进入 admin(例) 2, 在该目录下执行npm run build:test (自定义的打包命令) 3, 连接服务器 4, 找到需要打包的项目目录 5, 拷贝本地 dist 到服务器的项目目录里

1, build.sh (用来执行打包命令的文件)

代码语言:javascript复制
#!/bin/sh
cd "/Users/yinliang/Documents/workspace/$1/"   ($1  是 启动时项目文件的名字,可以写成固定的,那样的话点击sh文件直接执行更舒服)
npm run build:test
cd "/Users/yinliang/Desktop" (因为我两个文件都在桌面 我就直接到桌面就好了)
expect -f scp.exp ${1}

2.#!/usr/bin/expect

代码语言:javascript复制
set timeout 20 
 
set local_file [lindex $argv 0]
set passwd   111111(服务器的密码)
 
set passwderror 0
spawn ls
spawn scp -r /Users/yinliang/Documents/workspace/${local_file}/test  (用户名)@(ip地址):(存放在服务器文件的地址)${local_file}
expect { 
    "*assword:*" { 
        if { $passwderror == 1 } { 
        puts "passwd is error" 
        exit 2 
        } 
        set timeout 1000 
        set passwderror 1 
        send "$passwdr" 
        exp_continue 
    } 
    "*es/no)?*" { 
        send "yesr" 
        exp_continue 
    } 
    timeout { 
        puts "connect is timeout" 
        exit 3 
    } 
} 

⚠️ mac 安装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" mac安装expect(需要先安装brew,没有安装的话看上边) brew install expect

  1. 启动命令 ./build.sh admin(需要打包文件的目录名字)

0 人点赞