jenkins打包命令詳解


#!/bin/bash

remote_user="***" 

登錄服務器的用戶名

remote_ip="10.*** "

登錄服務器

jar_file="1.jar"

要打的jar包

local_path="1/target"

jar包的位置

remote_path="/home/java "

jar包打下來放的位置

release_path="$remote_path"

backup_path="$remote_path/backup"

JAVA_PATH="/usr/java/jdk-11.0.2/bin"

Java環境

APP_PARAM="--spring.profiles.active=uat"

Jar包啟動命令

ssh  $remote_user@$remote_ip "ps -ef | grep $jar_file | grep -v grep | cut -c 9-15 | xargs kill -9"

ssh  $remote_user@$remote_ip:遠程登錄linux環境

ps -ef | grep $jar_file:輸入命令,查找某個jar包是否啟動

grep -v grep:過濾掉自己執行的grep ,grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的行

-c : 提取指定的字符,可以是以逗號分隔的數字的列表,也可以是以連字符分隔的數字的范圍。

cut -c 9-15:是截取上面輸出的結果中的進程號,9-15正好是進程號

xargs kill -9:xargs命令可以通過管道接受字符串,並將接收到的字符串通過空格分割成許多參數(默認情況下是通過空格分割) 然后將參數傳遞給其后面的命令,作為后面命令的命令行參數

if [ $? -eq 0 ]; then

if [ $? -eq 0 ] 語句作用:判斷命令是否執行成功

ssh $remote_user@$remote_ip "mv $release_path/$jar_file $backup_path/$jar_file.`date +%Y-%m-%d-%k-%M`"

如果命令執行成功,復制jar包到backup_path

fi

if [ $? -eq 0 ]; then

    scp $local_path/$jar_file $remote_user@$remote_ip:$release_path/

fi

scp: 是 linux 系統下基於 ssh 登陸進行安全的遠程文件拷貝命令。,jar從target上拷貝到服務器的release_path

 

if [ $? -eq 0 ]; then

    ssh $remote_user@$remote_ip "cd $release_path ; $JAVA_PATH/java -jar $jar_file $APP_PARAM > $remote_path/letter_job.log 2>&1 &"

fi

切換到release_path,啟動jar包

java -jar 1.jar --spring.profiles.active=uat &>job.log 2>&1 &

輸出錯誤信息到提示符窗口

1 表示輸出信息到提示符窗口, 1前面的&注意添加, 否則還會創建一個名為1的文件

if [ $? = 0 ]; then

    sleep 30

    ssh $remote_user@$remote_ip "tail -n 50 $remote_path/out.log"

fi

程序休眠30s后查看日志


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM