Linux脚本-使用jar自动替换配置文件
背景
最近公司需要在生产服务器上测试字库,需要非常频繁修改配置文件中的字体相关属性,然后实时调试,所以需要频繁的修改配置文件并手动发布出去。之前需要修改配置文件时,我们需要:
- 把jar包通过FTP传回本地电脑
- 把新配置文件,压缩进jar包替换老配置文件
- 再把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自动替换配置文件的更多相关文章
- linux脚本执行jar包运行
以下为linux下运行jar包的脚本(只需替换jar包名称): #!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=ruoyi-admin.jar cd `di ...
- Linux下用jar命令替换war包中的文件【转】
问题背景:在Linux环境上的weblogic发布war包,有时候只是修改了几个文件,也要上传整个war包,这样很费时间,因此整理了一下Linux环境,更新单个文件的方法. 1.如果要替换的文件直接在 ...
- linux脚本:ftp自动传输文件
使用Shell脚本实现ftp的自动上传下载 http://liwenge.iteye.com/blog/566515 open 192.168.1.171 user guest 123456cd /h ...
- 【linux】查看jar里面的配置文件
1.vim 文件.jar 2.光标到配置文件,然后回车 3.退出命令:q 也可以进行编辑,按i进入编辑,按:wq保存退出
- linux下shell脚本执行jar文件
最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚 ...
- centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课
centos shell编程4[分发系统] 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要 ...
- [转载] 在Linux中,开机自动运行普通用户的脚本程序
FROM:http://blog.csdn.net/sinboy/article/details/2466225 FROM:http://www.2cto.com/os/201006/50680.ht ...
- linux系统中mysql自动备份脚本
mysql数据库中存储着网站最核心最宝贵的数据,如果因为不可预测的原因导致数据损坏或丢失,对一个网站的打击是毁灭性的,一次又一次的教训提醒着我们一定要做好备份,但是手工备份确实比较麻烦,每天都要手工操 ...
- Linux下shell通用脚本启动jar(微服务)
Linux下shell通用脚本启动jar(微服务) vim app_jar.sh #!/bin/bash #source /etc/profile # Auth:Liucx # Please chan ...
- jenkins实现git自动拉取代码时替换配置文件
jenkins实现从git上自动拉取源代码——>自动编译——>发布到测试服务器——>验证测试,这个大家应该都知道,但是关于源代码里的配置文件,可能就会有点头疼了, 一般测试都会自己的 ...
随机推荐
- svtools lmerge具体算法
svtools具有不同的子命令以实现不同的功能,其中一个就是lmerge.根据其帮助文档(merge LUMPY calls inside a single file from svtools lso ...
- Python调用ChatTTS API接口
Python调用ChatTTS API接口: #********************************************* #author:wgscd #date:2024-7-27 ...
- 项目PMP之八项目质量管理
项目PMP之八--项目质量管理 一.定义:以执行组织的名义支持过程的持续改进活动 核心理念:兼顾项目管理和可交付成果两方面 质量影响程度(代价由大到小):客户发现缺陷 > 交付前检测和纠正缺 ...
- C++:typedef 与 #define 的区别
1.执行上不同 关键字 typedef 在编译阶段有效,由于是在编译阶段,因此 typedef 有类型检查的功能. #define 则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单而机械的字 ...
- 上云有道 | 一图读懂天翼云边缘安全加速平台AccessOne!
上云有道 | 一图读懂天翼云边缘安全加速平台AccessOne!
- 打造有效安全闭环,天翼云MDR来了!
随着网络攻-防对抗形势愈演愈烈,传统的安全防护模式已难以应对频率暴增.昼夜不停的网络安全攻-击,提升组织安全防护能力势在必行.事实上,一些单位在网络安全建设工作中经验不足,在安全组件/设备采购方面大量 ...
- SpringCloud自定义loadbalancer实现标签路由
一.背景 最近前端反应开发环境有时候调接口会很慢,原因是有开发图方便将本地服务注册到开发环境,请求路由到开发本地导致, 为了解决该问题想到可以通过标签路由的方式避免该问题,实现前端联调和开发自测互不干 ...
- VS2019 找不到资产文件 “xxxx\obj\project.assets.json”运行NuGet包还原以生成此文件
参考地址:https://blog.csdn.net/weixin_42835409/article/details/107033059 下载 log4net 源码打开,编译报错: 严重性 代码 说明 ...
- STM32 DMA操作
https://blog.csdn.net/u014754841/article/details/79525637?utm_medium=distribute.pc_relevant.none-tas ...
- Top-N推荐算法 Top-N recommendation Algorithms
引言 推荐算法是计算机专业中的一种算法,通过一些计算,能够推测用户喜欢的东西,在互联网环境中应用比较广泛.Top-N算法在生活中非常常见,比如学术论文推荐论文.音乐软件推荐歌曲等. 今天看到一篇名叫& ...