Jar包一键重启的Shell脚本及新服务器部署的一些经验分享
前言
最近公司为客户重新部署了一套新环境,由我来完成了基础环境的配置,配置过程中总结了一些经验,分享给各位园友
使用curl命令检查网络
拿到新服务器后,首先检查服务器网络是否通畅。我们常用的ping命令使用的是ICMP协议,大部分服务器都设置了域名出入站规则,即使某些地址可以ping通,也存在服务器无法访问的情况。这时可以使用curlhost:port命令来测试该服务器能否正常发送http请求到外部服务器
安装JDK
新服务器一般没有JDK,可以使用java-version命令查看。如果没有,则通过yum命令安装之,如果有但版本不对也可以先卸载再安装
#卸载 rpm-qa|grepjava|xargsrpm-e--nodeps #安装1.8 yuminstalljava-1.8.0-openjdk*-y
检查服务器时间
一般新服务器时间都会与网络时间不一致,这时就需要我们先同步一下服务器时间
date/timedatectl命令可用于查看系统当前的时间,如果和网络时间不一致
#安装日期工具 yum-yinstallntpntpdate #同步时间 ntpdatecn.pool.ntp.org #将系统时间写入硬件时间 hwclock--systohc
打开指定的端口
应用部署了之后,由于防火墙的限制,需要手动打开应用所占用的端口。打开命令如下:
firewall-cmd--zone=public--add-port=80/tcp--permanent
执行完之后,重新载入防火墙配置
firewall-cmd--reload
有的服务器在内网中,有外网域名映射,那同时需要开放该端口外网到内网的映射。这个根据服务性质来确定。如果某个微服务只是服务间内网访问。就不建议暴露在公网中
Jar包一键重启
Java项目在Linux环境中一般采用war包到Tomcat或者jar包部署的方式在Linux部署,在自动化部署大行其道的今天,仍然会有不少的公司采用手动部署的方式部署jar包(比如我们公司),最近我们公司为客户重新升级了一下新的环境(新版本上线到新服务器)由我兼任运(rengbao)维(chongqi)工程师来负责项目的部署上线。项目初上线的时候重启操作是非常频繁的,一般我们会采用如下的命令:
ps-ef|grep服务名 kill-9PID nohupjava-jar服务名& tail-1000fnohup.out
这四步一气呵成,手速快的话10s左右就OK了,然而当微服务项目很多的时候,要输入的命令数量就是4n,有一次服务器时间不准,我重设了一下服务器时间,导致时钟回退,雪花ID无法生成。我一口气重启完了所有服务,那个酸爽。。。
于是我尝试着学习shell命令来写出来一个简单的一键重启并输出日志的脚本
脚本内容
#!/bin/bash #作者后青春期的Keats #博客地址https://www.cnblogs.com/keatsCoder/ #默认应用名称 defaultAppName='redis-cli.jar' appName='' if[$1&&$1!=0] then appName=$1 else appName=$defaultAppName fi echo">>>>>>本次重启的应用:$appName<<<<<<" #关闭应用方法 stopApp(){ pid=$(ps-ef|grep$appName|grep'java-jar'|grep-vgrep|awk'{print$2}') kill-9$pid } #启动应用方法 startApp(){ nohupjava-jar$appName& } #滚动打印日志 printLog(){ tail-1000fnohup.out } if[$2] then echo'第二个参数有值,仅启动' else stopApp fi startApp printLog
使用方法
使用vi/vim命令在应用jar包所在目录下新建一个restart.sh的文件
virestart.sh
复制上面的代码,更改该文件权限为可执行
chmod+xrestart.sh
执行脚本,para1para2是可选项,para1指定重启的项目名称,para2存在时只启动,不杀死进程
./restart.sh[para1][para2]
增强使用方法
细心的朋友可能注意到,脚本中有个变量defaultAppName没错,它就是默认重启的项目名称,对我们来说,一般jar包名称不会经常修改,因此可以通过修改默认应用名称的方式来简化执行时所需要输入应用名称的步骤。
修改了默认名称之后,如果想使用仅启动模式,就需要使用
./restart01
来实现,第一个参数0不会被识别成应用名称,只是用作占位符。
到此这篇关于Jar包一键重启的Shell脚本及新服务器部署的一些经验分享的文章就介绍到这了,更多相关jar包一键重启服务器部署内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!