zoukankan      html  css  js  c++  java
  • Linux笔记 #10# 用于支持Web应用开发&部署&配置的一些自定义脚本

    // 留着备用

    一、本地开发与测试相关脚本

    个人习惯在项目的根目录下建立一个script文件夹用来存放各种自定义的脚本,

    这样在根目录下不仅可以使用mvn命令和还可以很方便地执行自定义脚本(通过sh scripts/xxx.sh)。

    1、startup.sh

    cp target/你的应用名.war /d/apache-tomcat-9.0.8/webapps/test.war
    sh /d/apache-tomcat-9.0.8/bin/startup.sh

    说明:将maven项目部署到本地tomcat,并启动本地tomcat。

    备注:路径需要自定义。

    2、shutdown.sh

    sh /d/apache-tomcat-9.0.8/bin/shutdown.sh

    说明:关闭本地tomcat。

    备注:路径需要自定义。

    3、catalina-out.sh

    tail -f -n 20 /d/apache-tomcat-9.0.8/logs/catalina.out

    说明:在终端实时观察本地tomcat的输出日志(相当于集成环境的控制台)。

    备注:路径需要自定义。

    4、localhost_access_log.sh

    tail -f -n 20 /d/apache-tomcat-9.0.8/logs/localhost_access_log.`date +%F`.txt

    说明:在终端实时观察本地tomcat的访问日志(查看请求方IP、请求响应时间等)

    备注:路径需要自定义。

    5、上传本地文件到服务器指定目录

    scp ./target/simple-shop-1.0-SNAPSHOT.war root@***.**.**.**:/root/scripts/projects/simpleshop

    备注:ip、路径需要自定义

    二、服务端部署与日志查看

    1、nginx配置以及日志查看

    tail -f -n 20 /var/log/nginx/access.log
    vim /etc/nginx/nginx.conf
    tail -f -n 20 /var/log/nginx/error.log
    nginx -s reload

    备注:路径需要自定义。

    实际中,我将几个指令分别写成shell脚本,方便调用。

    2、定制程度较高的一个脚本。。。

    #!/bin/sh
    # arg1: war file name, arg2: jdbc password
    
    # 1. shutdown all cats
    sh /opt/tomcat/cat_7070/bin/shutdown.sh
    sh /opt/tomcat/cat_9090/bin/shutdown.sh
    
    # 2. save
    mv $1 `date +%F`.war
    
    # 3. unzip 
    unzip -oq `date +%F`.war -d shop1
    
    # 4. config
    pwd=$2
    sed "s/^password=.*$/password=${pwd}/" shop1/WEB-INF/classes/hikari.properties -i > /dev/null
    
    # 5. deploy
    rm -rf /opt/tomcat/cat_7070/webapps/shop1
    rm -rf /opt/tomcat/cat_9090/webapps/shop1
    cp -rf shop1 /opt/tomcat/cat_7070/webapps
    cp -rf shop1 /opt/tomcat/cat_9090/webapps
    
    # 6. start all cats
    sh /opt/tomcat/cat_7070/bin/startup.sh
    sh /opt/tomcat/cat_9090/bin/startup.sh

    说明:脚本含义见注释,对于普通tomcat项目,习惯在服务端建立一个中央仓库(中转站),进行配置的更改、服务端环境的调试。所以就有了上面的脚本。

    备注:该脚本以数据库密码作为参数。

    再比如,类似于:

    sed "s/^const BASE_URL.*$/const BASE_URL="http://***.**.**.**/shop1/api/v1"/" static/shop1/resources/js/utils/customUtils.js -i

    更改一些静态文件里的配置信息,避免每次上传都手动改。

    当然现在很多技术可以避免这个,不过暂时还没空去学。。

  • 相关阅读:
    BFS 路径记录
    KMP算法
    STL标准库-容器-deque 双端队列
    4. 位运算(快速幂)
    词频统计(未完成,错误)
    字符串转整形
    AVL平衡二叉树的各种问题(Balanced Binary Tree)
    string用scanf读入printf输出(节省时间)
    【转】Java魔法堂:String.format详解
    【转】关于Android资源文件中出现百分号的问题
  • 原文地址:https://www.cnblogs.com/xkxf/p/10778047.html
Copyright © 2011-2022 走看看