般部署脚本应该具有构建、启动、停止、回滚已经查看记录日志等功能,以下分别将这些功能以单个脚本的形式给出,当然也可以写成Makefile 的形式。
单个部署脚本的形式,在一个目录下建立如下文件:
bin # 目录,用于存放每次 build 之后存放的二进制文件
app.log # 用来记录的日志文件
log.sh # 实时查看日志
build.sh # 构建
run.sh # 启动某一次编译版本
start.sh # 启动最新版本,并且备份之前前一次运行的版本
shutdown.sh # 停止
rollback.sh # 回滚到上一版本
本例中的 GOPATH=”/go”
log.sh 具体内容:
tail -f -n 200 app.log # 实时查看最后 200 条日志的情况
build.sh 具体内容:
#!/bin/bash
# 项目地址,/go 在 GOPATH 里面
baseProjectDir="/go/src/monitor"
# targetDir 编译后的二进制文件目录
targetDir="bin"
# branch 编译的分支
branch="master"
pwd=`pwd`
# targetFile 编译后的输出文件名称
targetFile=`basename $pwd`
# buildPkg 编译的包名,main.go 所在的包
buildPkg="monitor"
# buildResult 编译结果
buildResult=""
if [ -n "$1" ]; then
branch="$1"
echo "Switch branch to ${branc