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