背景

最近公司需要在生产服务器上测试字库,需要非常频繁修改配置文件中的字体相关属性,然后实时调试,所以需要频繁的修改配置文件并手动发布出去。之前需要修改配置文件时,我们需要:

  1. 把jar包通过FTP传回本地电脑
  2. 把新配置文件,压缩进jar包替换老配置文件
  3. 再把jar包通过ftp传回服务器

今天偶然发现的jar命令,可以实现替换配置文件,就写了个脚本,专门用来替换配置文件。

经过优化,只需要把待替换的文件通过ftp传入远程服务器,就可以实现一键替换了。

脚本

目前实现了,传入新配置文件绝对路径,和源jar包绝对地址,自动更新替换旧的配置文件的功能。

#! /bin/bash

#新文件完整路径
newfile_addr=$1 #带替换jar包完整路径
orijar=$2 #判断操作类型
echo "更新文件操作"
#获取文件名
filename=`echo "$1" | awk -F '[/]' '{print $NF}'`
#根据文件名找文件
jar -tvf $2 | grep "$filename" > /tmp/$filename
count=`wc /tmp/application-verify.properties | awk -F '[ ]' '{print 1F}'`
if [ $count -eq 1 ];then
echo "找到一个路径开始处理!"
#获取文件夹路径
dir=$(dirname $(head -n 1 /tmp/$filename | awk -F '[ ]' '{print $NF}'))
echo "待查找文件路径!$dir"
#进入jar包所在文件夹,构建文件目录
orijaraddr=`echo $(dirname $2)`
echo "原jar包路径!$orijaraddr"
cd $orijaraddr if [ -d $dir ]; then
echo "$dir已经存在,先删除!"
rm -rf $dir
fi mkdir -p $dir cp $newfile_addr $orijaraddr/$dir
jar -uvf $2 $dir/$filename
echo "更新成功!"
else
echo "路径个数异常,无法处理,$count"
return
fi

测试命令和结果如下:

ging@ging-PC:~/脚本$ ./autoReplaceForjar.sh 传入新配置文件绝对路径 传入jar包绝对路径
更新文件操作
找到一个路径开始处理!
待查找文件路径!BOOT-INF/classes
原jar包路径!/home/ging/SGSfortest/app/realserver
BOOT-INF/classes已经存在,先删除!
正在添加: BOOT-INF/classes/application-dev.properties(输入 = 5791) (输出 = 1837)(压缩了 68%)
更新成功!

Linux脚本-使用jar自动替换配置文件的更多相关文章

  1. linux脚本执行jar包运行

    以下为linux下运行jar包的脚本(只需替换jar包名称): #!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=ruoyi-admin.jar cd `di ...

  2. Linux下用jar命令替换war包中的文件【转】

    问题背景:在Linux环境上的weblogic发布war包,有时候只是修改了几个文件,也要上传整个war包,这样很费时间,因此整理了一下Linux环境,更新单个文件的方法. 1.如果要替换的文件直接在 ...

  3. linux脚本:ftp自动传输文件

    使用Shell脚本实现ftp的自动上传下载 http://liwenge.iteye.com/blog/566515 open 192.168.1.171 user guest 123456cd /h ...

  4. 【linux】查看jar里面的配置文件

    1.vim 文件.jar 2.光标到配置文件,然后回车 3.退出命令:q 也可以进行编辑,按i进入编辑,按:wq保存退出

  5. linux下shell脚本执行jar文件

    最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚 ...

  6. centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课

    centos shell编程4[分发系统] 服务器标准化  mkpasswd 生成密码的工具  expect讲解   expect传递参数   expect自动同步文件  expect指定host和要 ...

  7. [转载] 在Linux中,开机自动运行普通用户的脚本程序

    FROM:http://blog.csdn.net/sinboy/article/details/2466225 FROM:http://www.2cto.com/os/201006/50680.ht ...

  8. linux系统中mysql自动备份脚本

    mysql数据库中存储着网站最核心最宝贵的数据,如果因为不可预测的原因导致数据损坏或丢失,对一个网站的打击是毁灭性的,一次又一次的教训提醒着我们一定要做好备份,但是手工备份确实比较麻烦,每天都要手工操 ...

  9. Linux下shell通用脚本启动jar(微服务)

    Linux下shell通用脚本启动jar(微服务) vim app_jar.sh #!/bin/bash #source /etc/profile # Auth:Liucx # Please chan ...

  10. jenkins实现git自动拉取代码时替换配置文件

    jenkins实现从git上自动拉取源代码——>自动编译——>发布到测试服务器——>验证测试,这个大家应该都知道,但是关于源代码里的配置文件,可能就会有点头疼了, 一般测试都会自己的 ...

随机推荐

  1. svtools lmerge具体算法

    svtools具有不同的子命令以实现不同的功能,其中一个就是lmerge.根据其帮助文档(merge LUMPY calls inside a single file from svtools lso ...

  2. Python调用ChatTTS API接口

    Python调用ChatTTS API接口: #********************************************* #author:wgscd #date:2024-7-27 ...

  3. 项目PMP之八项目质量管理

    项目PMP之八--项目质量管理   一.定义:以执行组织的名义支持过程的持续改进活动 核心理念:兼顾项目管理和可交付成果两方面 质量影响程度(代价由大到小):客户发现缺陷 > 交付前检测和纠正缺 ...

  4. C++:typedef 与 #define 的区别

    1.执行上不同 关键字 typedef 在编译阶段有效,由于是在编译阶段,因此 typedef 有类型检查的功能. #define 则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单而机械的字 ...

  5. 上云有道 | 一图读懂天翼云边缘安全加速平台AccessOne!

    上云有道 | 一图读懂天翼云边缘安全加速平台AccessOne!

  6. 打造有效安全闭环,天翼云MDR来了!

    随着网络攻-防对抗形势愈演愈烈,传统的安全防护模式已难以应对频率暴增.昼夜不停的网络安全攻-击,提升组织安全防护能力势在必行.事实上,一些单位在网络安全建设工作中经验不足,在安全组件/设备采购方面大量 ...

  7. SpringCloud自定义loadbalancer实现标签路由

    一.背景 最近前端反应开发环境有时候调接口会很慢,原因是有开发图方便将本地服务注册到开发环境,请求路由到开发本地导致, 为了解决该问题想到可以通过标签路由的方式避免该问题,实现前端联调和开发自测互不干 ...

  8. VS2019 找不到资产文件 “xxxx\obj\project.assets.json”运行NuGet包还原以生成此文件

    参考地址:https://blog.csdn.net/weixin_42835409/article/details/107033059 下载 log4net 源码打开,编译报错: 严重性 代码 说明 ...

  9. STM32 DMA操作

    https://blog.csdn.net/u014754841/article/details/79525637?utm_medium=distribute.pc_relevant.none-tas ...

  10. Top-N推荐算法 Top-N recommendation Algorithms

    引言 推荐算法是计算机专业中的一种算法,通过一些计算,能够推测用户喜欢的东西,在互联网环境中应用比较广泛.Top-N算法在生活中非常常见,比如学术论文推荐论文.音乐软件推荐歌曲等. 今天看到一篇名叫& ...