日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Linux配置脚本导出运行,linux服务器部署jar包以及shell脚本的书写

發布時間:2025/4/5 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux配置脚本导出运行,linux服务器部署jar包以及shell脚本的书写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景:記錄在linux環境下部署jar程序的過程

1 部署過程記錄

1.1 程序結構

這里的main函數就在DemRest2.java 文件中。

為了部署方便,要做到以下兩點:

1 在導出的jar包中不包含依賴的jar文件

2 程序用到的配置文件可以讓用戶進行自定義 ,不將其放在jar包中。

1.2 導出jar包

這里導出普通的jar包即可。為了方便傳輸,只導出必須的程序文件。

在jar包導出后,進入導出的jar包中,將配置文件tws.properties文件刪除。

1.3 程序部署

將所有需要的jar包放在lib目錄下面,包括我們導出工程的jar包tws-client-demo.jar

在用戶自定義目錄中,放置運行腳本和配置文件。

ps:運行腳本所在的目錄,就相當于程序運行的根目錄,所有的配置文件和運行腳本放置在同一目錄即可。

這里程序中怎么讀取配置文件,還需要好好研究。。。。。。。

#!/bin/sh

sourceMsgPath=/home/tws/server/tws-test/userMsg/lxw/source/etc/profile

for i in $HOME/server/tws-test/lib/*;

do CLASSPATH=$i:"$CLASSPATH";

done

export CLASSPATH=.:${CLASSPATH}

java demo.rest.DemRest2 $sourceMsgPath$1echo"Success!"

對照以上腳本進行解釋:

運行程序:

在用戶目錄下面,程序能夠讀到jar包外部的配置文件。

2 標準腳本

在網上找的一個腳本范例:

在編寫shell腳本出現錯誤時候,可以作為參考:

#!/bin/sh

export JAVA_HOME=/usr/java/jdk1.6.0_18

export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

for i in lib/*.jar;

do CLASSPATH=$i:${CLASSPATH}

done

export CLASSPATH=.:${CLASSPATH}

java-cp ${CLASSPATH} main方法所在包名.main方法所在的類名

如果上述腳本不能順利執行,可以嘗試

#!/bin/bash后追加

source/etc/profile

source ~/.bash_profile

測試下。。

java -cp java的cp命令

java -cp .;c:\dir1\lib.jar Test

-cp 和 -classpath 一樣,是指定類運行所依賴其他類的路徑,通常是類庫,jar包之類,需要全路徑到jar包,window上分號“;”

分隔,linux上是分號“:”分隔。不支持通配符,需要列出所有jar包,用一點“.”代表當前路徑。

3 半自動化工程部署

ps:在處理第三方管理平臺項目時候,突然想寫一個自動化的shell腳本,其實腳本很簡單,只不過前期走了些彎路,雖說麻煩,但是對自己來說也是一次提高。

我遇到的問題是

ps:剛開始我還以為是腳本語法問題,后來網上搜索才知道是這個問題。解決后,后面的腳本就是常用命令的集合。

問題:通過ftp傳輸工具在windows下編輯的腳本,在執行的時候會出現no such file or directory情況。

是因為平臺不同導致的。執行下列命令即可

INUX下SHELL編程腳本無法執行,提示no such file or directory.

sudo vim xx.sh

:set ff=unix

:wq

就OK了

(如果是在windows里寫的腳本,你輸入:set ff 應該顯示的是DOS)

最終的shell腳本:

#!/bin/bash

#war包上傳臨時目錄

warPath=/usr/local/tmp-tms

#tomcat中webapps中文件

service_webapps=/usr/local/service-tomcat7/webapps

web_webapps=/usr/local/web-tomcat7/webapps

#待替換的配置文件

from_service_config=$warPath/224-service

to_service_config=$service_webapps/tms_service/WEB-INF/classes

from_web_config=$warPath/224-web

to_web_config=$web_webapps/tms/WEB-INF/classes

deployService(){

#清空tomcat webapps下的文件rm -rf $service_webapps/*echo "完成臨時目錄的清理:$service_webapps"

#移動war文件到webappps目錄

mv $warPath/tms_service.war $service_webapps

echo "完成war文件的移動:$service_webapps/tms_service.war"

#解壓war包

cd $service_webapps

unzip tms_service.war -d tms_service

echo "完成war文件解壓:$service_webapps/tms_service.war"

#替換war中的配置文件

cp $from_service_config/log4j.properties $to_service_config/log4j.properties

cp $from_service_config/resources.properties $to_service_config/resources.properties

cp $from_service_config/service.xml $to_service_config/service.xml

echo "完成Service工程配置文件的替換!"

}

deployWeb(){

#清空tomcat webapps下的文件

rm -rf $web_webapps/*

echo "完成臨時目錄的清理:$web_webapps"

#移動war文件到webappps目錄

mv $warPath/tms.war $web_webapps

echo "完成war文件的移動:$web_webapps/tms.war"

#解壓war包

cd $web_webapps

unzip tms.war -d tms

echo "完成war文件解壓:$web_webapps/tms.war"

#替換war中的配置文件

cp $from_web_config/log4j.properties $to_web_config/log4j.properties

cp $from_web_config/service.xml $to_web_config/service.xml

cp $from_web_config/tms.properties $to_web_config/tms.properties

echo "完成web工程配置文件的替換!"

}

##############腳本入口

#./deploy.sh service ---只部署service

#./deploy.sh web ---只部署web

#./deploy.sh both ---同時部署service和web

if [ $1 == "service" ]

then

deployService

echo "只部署service,successful"

elif [ $1 == "web" ]

then

deployWeb

echo "只部署web,successful"

elif [ $1 == "both" ]

then

deployService

sleep 10

deployWeb

echo "同時部署service和web,successful!"

else

echo "請輸入一個正確參數:service web both"

fi

View Code

用到啥就去查什么,一切都不是困難,態度決定成效!!!!

總結

以上是生活随笔為你收集整理的Linux配置脚本导出运行,linux服务器部署jar包以及shell脚本的书写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。