• 脚本自动更新、关闭、启动服务器【BAT、SHELL、SVN,NPM】


    在开发过程中,我们不可避免的要做一些打包的动作,然后将打包完成的东西传给到本地服、服务器中。那么如果没一步都要自己去操作的话,未免也太过繁琐且无益。

    下面我将我们在日常开发的过程中用到的脚步放出来,希望大家有所感悟、提升效率。

    Linux中关服

    在linux中关服有一个很重要的指令,就是找到当前的java服务器的进程号,然后通过kill的方式发送一个信号给到进程从而优雅的关闭服务器。

    pid=`ps -ef|grep $jar_name|grep -v grep|awk '{print $2}'`
    kill $pid
    
    • 1
    • 2

    前端打包上传Linux

    对于那种前后端分离的项目,我们的前端项目开发完之后需要打包,然后上传到服务器中,然后通过nginx的方式来访问的,这种我们就需要将项目打吧,然后自动上传到Linux服务器中的特定位置。

    @echo off
    chcp 65001
    rem 拷贝文件完整路径
    set folder=C:\worksplace\xxx
    
    echo "打包.."
    e:
    cd C:\worksplace\xxx
    call npm run build
    
    echo "上传到服务器"
    pscp -pw 你的密码 -r %folder% root@192.168.1.107:/data/project/
    pause
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    Bat脚本【上传文件到linux服务器、并重启服务器】

    @echo on
    
    ::默认为GBK改为UTF-8
    chcp 65001
    
    ::项目名字
    set name=xxx
    set folder=F:\huanghailiang\%name%
    
    
    echo "上传本地服"
    ::1.更新本地服目录
    svn update F:\huanghailiang\tools\LocalServer
    ::2.替换本地服目录中的文件
    copy ..\target\xxx_server-0.0.1-SNAPSHOT.jar  F:\huanghailiang\tools\LocalServer\lib\ /y
    ::3.SVN提交本地服数据
    svn commit F:\huanghailiang\tools\LocalServer\lib -m "更新本地项目Jar包"
    echo "本地服上传完毕"
    
    :: 暂停10
    timeout /t 10
    
    echo "开始上传到内网服"
    rem 服务器IP
    set ip=你Linux服务器的ip地址
    rem 服务器账户
    set acount=你的账户
    set password=你的密码
    
    ::下面的两个工具需要安装[https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html]
    
    echo "停掉策划服务器"
    C:\worksplace\tool\putty\plink.exe -batch  -pw %password% %acount%@%ip% "cd /data/xxx/3063-cehua;./stop.sh"
    echo "停掉内网服务器"
    C:\worksplace\tool\putty\plink.exe -batch  -pw %password% %acount%@%ip% "cd /data/xxx/3061-neiwang;./stop.sh"
    
    timeout /t 10
    
    echo "上传Jar包到策划服"
    C:\worksplace\tool\putty\pscp.exe -pw %password% %folder%\target\xxx_server-0.0.1-SNAPSHOT.jar %acount%@%ip%:/data/xxx/3063-cehua
    echo "上传Jar包到内网服"
    C:\worksplace\tool\putty\pscp.exe -pw %password% %folder%\target\xxx_server-0.0.1-SNAPSHOT.jar %acount%@%ip%:/data/xxx/3061-neiwang
    
    timeout /t 20
    
    ::调用远程脚本启动[-batch :禁用所有交互式提示]
    echo "启动策划服务器"
    C:\worksplace\tool\putty\plink.exe -batch  -pw %password% %acount%@%ip% "cd /data/xxx/3063-cehua;./run.sh"
    echo "启动内网服务器"
    C:\worksplace\tool\putty\plink.exe -batch  -pw %password% %acount%@%ip% "cd /data/xxx/3061-neiwang;./run.sh"
    pause
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    总结

    上面是我对于开发过程中打包的一些自动化处理的脚步,目的是为了避免繁琐的无意义的操作,提高自己的开发效率。希望对大家有用。




    2022.23.01 更新

    C:\worksplace\tool\putty\plink.exe -batch  -pw %password% %acount%@%ip% "cd /data/xxx/3063-cehua;./run.sh"
    
    • 1

    这种方式会导致启动的服务器无法热更、应该是设计到环境变量的问题,而且启动脚本中又用到了环境变量,因此我们只需要先刷新一下环境变量,在运行启动命令即可。

    脚本如下

    C:\worksplace\tool\putty\plink.exe -batch  -pw %password% %acount%@%ip% "source /etc/profile; cd /data/xxx/3063-cehua;./run.sh"
    
    • 1
  • 相关阅读:
    RabbitMQ学习(二)
    MySQL数据库索引和事务详解
    做自媒体怎样在一年之内赚到 10万元?
    php简单商城小程序系统源码
    【QT】Qt项目demo:数据在ui界面上显示,鼠标双击可弹窗显示具体信息
    Redi 的 RDB 和 AOF
    Privacy-preserving record linkage on large real world datasets论文总结
    【无标题】
    速卖通测评自养号,国外环境如何搭建?需要多少成本?
    PHP 智能物业管理系统mysql数据库web结构apache计算机软件工程网页wamp
  • 原文地址:https://blog.csdn.net/huanghailiang_ws/article/details/128128434