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
版权声明:本文博主原创文章,博客,未经同意不得转载。
Linux在高铁项目的部署环境的更多相关文章
- Linux下发布javaWeb项目,配置环境变量,tomcat,和安装mysql数据库
如果不懂,可以联系微博本人:QQ:3111901846 (原创) 1.配置java中jdk 注意一切操作,都是在root这个目录下进行的,不要选择其他目录,不然会出现一些小问题的 第一步: 你需要一个 ...
- Linux(三)—— 项目部署环境搭建
目录 项目部署环境搭建 一.linux上网 二.rpm包管理 1.光盘挂载 2.安装卸载rpm包 3.查询是否安装 4.查看软件包 5.互相依赖关系的软件包 三.yum包管理 1.使用aliyun的y ...
- Linux之项目的部署
前期准备 python3解释器 uwsgi wsgi(web服务网关接口,就是一个实现了python web应用的协议) virtualenvwrapper 路飞的代码 vue的代码 nginx (一 ...
- Nginx知多少系列之(十四)Linux下.NET Core项目Nginx+Keepalived高可用(主从模式)
目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...
- Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- windows/Linux下设置ASP.Net Core开发环境并部署应用
10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...
- 【转】前后端分离的项目如何部署发布到Linux
前后端分离的项目如何部署发布到Linux 前期准备 1.服务器的基本配置信息2.本机远程连接服务器的工具(xshell.xftp或者mobaXterm等等,看你自己喜欢) 第一步:部署环境 1.安装j ...
- maven项目打包部署到虚拟机测试和生产环境上及查看日志操作
调试通过后提交代码到gitlab,打包部署到相应环境(测试或生产环境)步骤一样1.打包在要打包的项目上右键run as maven clean 清除原来的包,然后run as maven instal ...
- 开源项目renren-fast开发环境部署(后端部分)
开源项目renren-fast开发环境部署(后端部分) 说明:renren-fast是一个开源的基于springboot的前后端分离手脚架,当前版本是3.0 开发文档需要付费,官方的开发环境部署介绍相 ...
随机推荐
- cocos2d-x 3.0 使用最新物理引擎的一个源代码实例
1.碰撞函数參数由两个变成一个了 2.检測不到碰撞.须要设置那三个參数.同一时候还要设置成动态的. body进行设置. 3.初始入口文件也发生了改变. 附录上我近期调试好的cocos2d-x 3.1 ...
- Codeforces 475D CGCDSSQ 求序列中连续数字的GCD=K的对数
题目链接:点击打开链接 #include <cstdio> #include <cstring> #include <algorithm> #include < ...
- [Android学习笔记]RelativeLayout的使用
RelativeLayout是相对布局控件,在屏幕适配的时候非常有用,在此记录一些它的常用属性 第一类:属性值为true或falseandroid:layout_centerHrizontal ...
- GitHub上最火的40个iOS开源项目
1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS. Mac OS X网络通信类库,现在是 ...
- HTML5系列之——applicationCache对象
ApplicationCache主要简单介绍: applicationCache对象实现HTML5相应WEB离线功能.以下我们来主要解说applicationCache对象的一些主要功能和方法 app ...
- VSTO 学习笔记(十)Office 2010 Ribbon开发
原文:VSTO 学习笔记(十)Office 2010 Ribbon开发 微软的Office系列办公套件从Office 2007开始首次引入了Ribbon导航菜单模式,其将一系列相关的功能集成在一个个R ...
- Redis key 设计技巧
1: 把表名转换为key前缀 如, tag: 2: 第2段放置用于区分区key的字段--对应mysql中的主键的列名,如userid 3: 第3段放置主键值,如2,3,4...., a , b ,c ...
- nginx 301跳转到带www域名方法rewrite(转)
首先一.得在你的域名管理里面定义 test.com和www.test.com指向你的主机ip地址,我们可以使用nslookup命令测试:直接输入 nslookup test.com和nslookup ...
- jeecg 3.5.2 新版本号4种首页风格 【经典风格,shortcut风格,ACE bootstrap风格,云桌面风格】
[1]经典风格: [2]Shortcut风格: [3]ACE bootsrap风格: [4]云桌面风格: [5]自己定义图表 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...
- C++习题 虚函数-计算图形面积
C++习题 虚函数-计算图形面积 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 122 Solved: 86 [cid=1143&pid=6 ...