濮阳杆衣贸易有限公司

主頁 > 知識庫 > Jar包一鍵重啟的Shell腳本及新服務器部署的一些經(jīng)驗分享

Jar包一鍵重啟的Shell腳本及新服務器部署的一些經(jīng)驗分享

熱門標簽:外呼系統(tǒng)號顯示星號怎么看 揭陽電腦外呼系統(tǒng)公司 承德地圖標注公司收費 suitecrm 地圖標注 華創(chuàng)e路航彩票銷售點地圖標注 高德地圖標注常顯 鶴壁外呼系統(tǒng)公司 銀川語音外呼系統(tǒng)中心 臨沂ai電銷機器人招商

前言

最近公司為客戶重新部署了一套新環(huán)境,由我來完成了基礎環(huán)境的配置,配置過程中總結(jié)了一些經(jīng)驗,分享給各位園友

使用 curl 命令檢查網(wǎng)絡

拿到新服務器后,首先檢查服務器網(wǎng)絡是否通暢。我們常用的 ping 命令使用的是 ICMP 協(xié)議,大部分服務器都設置了域名出入站規(guī)則,即使某些地址可以 ping 通,也存在服務器無法訪問的情況。這時可以使用 curl host:port 命令來測試該服務器能否正常發(fā)送 http 請求到外部服務器

安裝 JDK

新服務器一般沒有 JDK ,可以使用 java -version 命令查看。如果沒有,則通過 yum 命令安裝之,如果有但版本不對也可以先卸載再安裝

# 卸載 
rpm -qa | grep java | xargs rpm -e --nodeps 
# 安裝 1.8
yum install java-1.8.0-openjdk* -y

檢查服務器時間

一般新服務器時間都會與網(wǎng)絡時間不一致,這時就需要我們先同步一下服務器時間

date/timedatectl 命令可用于查看系統(tǒng)當前的時間,如果和網(wǎng)絡時間不一致

# 安裝日期工具
yum -y install ntp ntpdate
# 同步時間
ntpdate cn.pool.ntp.org
# 將系統(tǒng)時間寫入硬件時間
hwclock --systohc

打開指定的端口

應用部署了之后,由于防火墻的限制,需要手動打開應用所占用的端口。打開命令如下:

firewall-cmd --zone=public --add-port=80/tcp --permanent

執(zhí)行完之后,重新載入防火墻配置

firewall-cmd --reload  

有的服務器在內(nèi)網(wǎng)中,有外網(wǎng)域名映射,那同時需要開放該端口外網(wǎng)到內(nèi)網(wǎng)的映射。這個根據(jù)服務性質(zhì)來確定。如果某個微服務只是服務間內(nèi)網(wǎng)訪問。就不建議暴露在公網(wǎng)中

Jar 包一鍵重啟

Java 項目在 Linux 環(huán)境中一般采用 war 包到 Tomcat 或者 jar 包部署的方式在 Linux 部署,在自動化部署大行其道的今天,仍然會有不少的公司采用手動部署的方式部署 jar 包(比如我們公司),最近我們公司為客戶重新升級了一下新的環(huán)境(新版本上線到新服務器)由我兼任運(reng bao)維(chong qi)工程師來負責項目的部署上線。項目初上線的時候重啟操作是非常頻繁的,一般我們會采用如下的命令:

ps -ef |grep 服務名
kill -9 PID
nohup java -jar 服務名 
tail -1000f nohup.out

這四步一氣呵成,手速快的話 10s 左右就 OK 了,然而當微服務項目很多的時候,要輸入的命令數(shù)量就是 4n ,有一次服務器時間不準,我重設了一下服務器時間,導致時鐘回退,雪花ID無法生成。我一口氣重啟完了所有服務,那個酸爽。。。

于是我嘗試著學習 shell 命令來寫出來一個簡單的一鍵重啟并輸出日志的腳本

腳本內(nèi)容

#!/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 -v grep|awk '{print $2}')
	kill -9 $pid
}

# 啟動應用方法
startApp(){
	nohup java -jar $appName 
}

# 滾動打印日志
printLog(){
	tail -1000f nohup.out
}

if [ $2 ]
then
	echo '第二個參數(shù)有值,僅啟動'
else
	stopApp
fi
startApp
printLog

使用方法

使用 vi/vim 命令在應用 jar 包所在目錄下新建一個 restart.sh 的文件

vi restart.sh

復制上面的代碼,更改該文件權限為可執(zhí)行

chmod +x restart.sh

執(zhí)行腳本,para1 para2 是可選項,para1 指定重啟的項目名稱,para2 存在時只啟動,不殺死進程

./restart.sh [para1] [para2]

增強使用方法

細心的朋友可能注意到,腳本中有個變量 defaultAppName 沒錯,它就是默認重啟的項目名稱,對我們來說,一般 jar 包名稱不會經(jīng)常修改,因此可以通過修改默認應用名稱的方式來簡化執(zhí)行時所需要輸入應用名稱的步驟。

修改了默認名稱之后,如果想使用僅啟動模式,就需要使用

./restart 0 1

來實現(xiàn),第一個參數(shù) 0 不會被識別成應用名稱,只是用作占位符。

到此這篇關于Jar包一鍵重啟的Shell腳本及新服務器部署的一些經(jīng)驗分享的文章就介紹到這了,更多相關jar 包一鍵重啟服務器部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Linux利用Shell腳本部署jar包項目的完整步驟
  • Linux啟動jar包的shell腳本
  • Linux中自定義shell腳本啟動jar包的方法

標簽:許昌 萊蕪 三沙 七臺河 棗莊 汕尾 咸寧 忻州

巨人網(wǎng)絡通訊聲明:本文標題《Jar包一鍵重啟的Shell腳本及新服務器部署的一些經(jīng)驗分享》,本文關鍵詞  Jar,包一鍵,包,一鍵,重啟,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Jar包一鍵重啟的Shell腳本及新服務器部署的一些經(jīng)驗分享》相關的同類信息!
  • 本頁收集關于Jar包一鍵重啟的Shell腳本及新服務器部署的一些經(jīng)驗分享的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    广灵县| 普宁市| 红安县| 古丈县| 富阳市| 金川县| 英德市| 万年县| 麻阳| 从化市| 巴林右旗| 财经| 安陆市| 定兴县| 九龙县| 泰和县| 柳江县| 沧州市| 枞阳县| 合山市| 天全县| 青铜峡市| 嘉荫县| 麻栗坡县| 卓资县| 凤城市| 海安县| 永嘉县| 藁城市| 清水县| 资兴市| 南平市| 五原县| 榆林市| 芷江| 平昌县| 涡阳县| 加查县| 远安县| 刚察县| 界首市|