zoukankan      html  css  js  c++  java
  • Linux在高铁项目的部署环境

    因为Linux和Java像开源。所以,现在在server基本上使用部署Linux平台即server。然后部署项目。在开发项目的过程中。程序员绝大多数仍采用最经典windows操作系统,尽管Linux也有系统的桌面,为人民,还是不太习惯。持Linux平台。所以在使用的频率那是相当的少!

    在开发中,开发环境中编译使用等一系列通过后,还不能说功能已经ok。由于环境一旦变化,出现的问题的可能是自己没有考虑的。所以程序员都知道真实的环境才是最可靠的,有时候出现的问题。在真实的环境须要多次才干重现,甚至长时间无法重现。因此在真实的环境中进行大量的測试时相当须要的!

    来讲讲是怎么改善部署环境的:

    这里使用到了一个shell脚本,简介一下shell脚本:shell script,shell脚本与windows/dos下的批处理相似,也就是用各类命令预先放入到一个文件里,方便一次性运行的一个程序文件。主要是方便管理员进行设置或者管理用的。可是它比windows下的批处理更强大。比用其它编程程序编辑的程序效率更高,毕竟它使用Linux/Unix下的命令。

    换一种说法也就是,shell script是利用shell的功能缩写的一个程序,这个程序是使用纯文本文件。将一些shell的语法和指令都写在里面。然后用正则表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。

    更明确的来说,shell script就想早起dos年代的.bat,最简单的功能就是将很多指令汇整写一起,让使用者非常easy的就行一个操作运行多个命令,而shell script更是提供了数组,循环,条件以及逻辑推断等重要功能。让使用者可以直接以shell来敲代码,而不必使用类似C程序语言等传统程序编写的语法。

    shell就简单的介绍到这里。如今直接贴上shell脚本(tom.sh)里的内容

    #!/bin/bash
    
    service tomcat stop
    sleep 3
    #kill java
    killall java
    #remove pid
    rm -rf /var/run/tomcat.pid
    rm -rf /nac/web/tomcat/webapps/hupunac* /nac/web/tomcat/webapps/ROOT
    rm -rf /nac/web/tomcat/work/*
    #clear log
    >/var/log/tomcat/catalina.out
    #rz
    cd /nac/web/tomcat/webapps
    rz
    #start tomcat
    sleep 3
    service tomcat start
    #
    echo "Please wait for 80s......"
    sleep 80
    netstat -an|grep :::6002 > /dev/null
    if [ $? != 0 ];then
            service tomcat stop
            killall java
            rm -rf /var/run/tomcat.pid
            service tomcat start
    else
            echo "tomcat start ok!"
    fi
    这里的

    service tomcat stop命令应该非常清楚了吧,就是先将tomcat的服务先停止。当然可能在这个时候tomcat的服务本身就没有开启,可是不影响整个脚本的运行

    sleep 3指的是睡眠3s(秒)。俗称等待3秒

    killall java强制杀死Java程序

    rm -rf强制删除,使用这个命令,主要是为了删除server下那些必须删除的文件

    > 这条命令是将文件清空的意思,在我这里主要是清空日志文件

    cd是指进入文件夹

    rz是指文件导入,就是windows中的浏览一般。然后上传

    service tomcat start这时候,我们项目的war上传成功后,開始启动服务,接着又是等待服务开启

    这里做了一个优化,由于在我们的程序中使用到了6002port,所以假设服务开启完成后port还没有起来,也就是listen状态。netstat -an这命令是用来查看当前系统中全部port信息,这些port中的6002port是我们所须要的数据,所以我们能够用netstat -an|grep :::6002来过滤!

    假设没有起来的话,说明在tomcat的服务开启过程中出现了问题,然后再次走流程,这时候仅仅是少了一步上传war包的动作。

    好啦。脚本介绍完成了。这时候我们能够运行. /nac/script/tom.sh,ok项目就能够轻松部署了!


    这时候就用人要问了。这么长的路径,这么难找,挺费事!还不能更加优化呢,这是当然的。必须能优化。这里介绍两种优化方式:

    1、在root下的.bashrc文件下增加alias webupdate='. /nac/script/tom.sh'

    2、在/etc/profile中增加alias webupdate='. /nac/script/tom.sh'

    两种方式都介绍完了,两种优化方式都行,后者更好,更方便,由于后者是配置在系统的环境变量上,而前者是配置在root用户的环境变量上,所曾经者仅仅有root能使用。而后者的话全部用户都能够使用该命令。这样就能够使用webupdate这一条命令就能够轻松换war包部署


    可能这时候有人就要问了,用命令怎么说不存在呢!当然,设备没有重新启动。配置的这些资源还有又一次载入呢,肯定没有使用咯,重新启动设备就ok,重新启动设备太费劲了,我们能够用source一下就好啦,这样就能够直接使用刚刚配置好命令,记住source是source刚才改动的文件!


    最后我们是不是能够非常轻松非常方便非常快捷就能把我们的项目又一次部署了呢!

    为各位附上最经常使用的Linux命令集:http://blog.csdn.net/luo201227/article/details/23295435

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    a different object with the same identifier value was already associated with the session
    Oracle创建触发器实现主键自增
    org.hibernate.LazyInitializationException
    no appropriate service handler found The Connection descriptor used by the client was: localhost:1521:myorcl
    恶补java基础 位运算符
    Extjs Toolbar 当做弹出菜单
    解决javaWEB 下载文件中文名称乱码问题
    SpringMVC HandlerMethodArgumentResolver自定义参数转换器 针对HashMap失效的问题
    Jackson2.1.4 序列化对象时,过滤null的属性 empty的属性 default的属性
    Jackson2.1.4 序列化格式化时间
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4857792.html
Copyright © 2011-2022 走看看