因为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

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

Linux在高铁项目的部署环境的更多相关文章

  1. Linux下发布javaWeb项目,配置环境变量,tomcat,和安装mysql数据库

    如果不懂,可以联系微博本人:QQ:3111901846 (原创) 1.配置java中jdk 注意一切操作,都是在root这个目录下进行的,不要选择其他目录,不然会出现一些小问题的 第一步: 你需要一个 ...

  2. Linux(三)—— 项目部署环境搭建

    目录 项目部署环境搭建 一.linux上网 二.rpm包管理 1.光盘挂载 2.安装卸载rpm包 3.查询是否安装 4.查看软件包 5.互相依赖关系的软件包 三.yum包管理 1.使用aliyun的y ...

  3. Linux之项目的部署

    前期准备 python3解释器 uwsgi wsgi(web服务网关接口,就是一个实现了python web应用的协议) virtualenvwrapper 路飞的代码 vue的代码 nginx (一 ...

  4. Nginx知多少系列之(十四)Linux下.NET Core项目Nginx+Keepalived高可用(主从模式)

    目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...

  5. Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  6. windows/Linux下设置ASP.Net Core开发环境并部署应用

    10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...

  7. 【转】前后端分离的项目如何部署发布到Linux

    前后端分离的项目如何部署发布到Linux 前期准备 1.服务器的基本配置信息2.本机远程连接服务器的工具(xshell.xftp或者mobaXterm等等,看你自己喜欢) 第一步:部署环境 1.安装j ...

  8. maven项目打包部署到虚拟机测试和生产环境上及查看日志操作

    调试通过后提交代码到gitlab,打包部署到相应环境(测试或生产环境)步骤一样1.打包在要打包的项目上右键run as maven clean 清除原来的包,然后run as maven instal ...

  9. 开源项目renren-fast开发环境部署(后端部分)

    开源项目renren-fast开发环境部署(后端部分) 说明:renren-fast是一个开源的基于springboot的前后端分离手脚架,当前版本是3.0 开发文档需要付费,官方的开发环境部署介绍相 ...

随机推荐

  1. minidump详细介绍

    Effective minidump 简介 在过去几年里,崩溃转储(crash dump)成为了调试工作的一个重要部分.如果软件在客户现场或者测试实验室发生故障,最有价值的解决方式是能够创建一个故障瞬 ...

  2. Lisp的永恒之道 好文

    http://www.cnblogs.com/weidagang2046/archive/2012/06/03/tao_of_lisp.html

  3. HDU/HDOJ 2612 Find a way 双向BFS

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 思路:从两个起点出发,有多个终点,求从两个起点同时能到达的终点具有的最小时间,开两个数组分别保存 ...

  4. cocos2d-x2.2.5 + cocos2d-x3.2鸟跳便宜源代码“开源”

    尊重开发人员的劳动成果,转载请注明From郝萌主 游戏简单介绍: 贱鸟跳跳,贱贱的小鸟这次遇上大问题了.被它整蛊过的同类都在找它的麻烦,如今我们赶紧到游戏中帮帮它吧!左右手互撸,合理操控.获得高分,打 ...

  5. Deep learning From Image to Sequence

    本文笔记旨在概括地讲deep learning的经典应用.内容太大,分三块. ------------------------------------------------------------- ...

  6. oracle动态注冊參数local_listener

    local_listener參数有两种书写格式,提供了不同的功能. 监听文件上,1521和1526port上都有动态监听port. [oracle@dbsv admin]$ cat listener. ...

  7. Domain Model(领域模型)

    Domain Model(领域模型) 上一篇:<DDD 领域驱动设计-如何 DDD?> 开源地址:https://github.com/yuezhongxin/CNBlogs.Apply. ...

  8. hdu1506(dp求最大子矩阵)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1506 分析: 对于每个单位矩阵,我们先求出连续比它高的最左边的下标假设为l,然后求出比它高的最右边的下 ...

  9. Python 类继承,__bases__, __mro__, super

    Python是面向对象的编程语言,也支持类继承. >>> class Base: ... pass ... >>> class Derived(Base): ... ...

  10. SqlServer操作远程数据库

    exec sp_addlinkedserver 'srv2','','mssql2008','服务器IP' exec sp_addlinkedsrvlogin 'srv2','false',null, ...