一个shell脚本,简化python代码部署

问题场景

最近一直在整基于flask框架的python web服务。遇到的最重复性的问题就是:本地的代码测试完成,需要通过scp命令将本地的文件上传到服务器。同时,服务器上旧文件需要做一个删除操作,终止原来的进程;再根据新代码启动服务。整个过程的描述如下:

  1. 关闭线上的服务
ps -ef | grep 'python3 app.py' | grep -v grep | awk '{print $2}' | xargs kill
  1. 删除路径下的文件
rm -rf /ocr/*
  1. 上传本地的文件
scp -r ./* root@xxx:/xxx/ xxxxxx
  1. 启动

看到这样繁琐的过程,我最终忍无可忍了, 决定写一个shell脚本彻底的根治这个问题。

解决方案

先看一下更新之后的流程:
在这里插入图片描述
可以看到关键点在于新的两个脚本:deploy.shstart.sh

start.sh

主要是封装的启动命令和启动检查,防止通过脚本启动服务时,服务已经是处于运行的状态。

echo "-----------------欢迎使用脚本,开始启动ocr, cmd:$0 $*---------------------"

WC=$(lsof -i:$SERVER_PORT | grep python | wc -l)
if [ $WC -gt 0 ]; then
    echo "ocr服务启动失败,服务已启动或端口 $SERVER_PORT 被占用"
    if [ $uname -eq 'Darwin' ]; then
        PID=$(lsof -i:$SERVER_PORT | awk 'NR==2{print $2}')
        echo '是否重启服务(y/n):'
        read choice
    else
        PID=$(netstat -nlp | grep $SERVER_PORT | awk '{print $NF}' | cut -d '/' -f 1)
        read -n 1 -t 30 -p '是否重启服务(y/n):' choice
    fi
    echo "查询的PID:$PID 你的选择:$choice"
    if [ $choice == 'y' ]; then
        kill -9 $PID
    else
        exit 1
    fi
fi

deploy.sh

主要是文件的上传操作了。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值