zoukankan      html  css  js  c++  java
  • Linux脚本-使用jar自动替换配置文件

    背景

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

    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%)
    更新成功!
    
  • 相关阅读:
    jQuery使用(十三):工具方法
    jQuery使用(十二):工具方法之type()之类型判断
    马化腾成中国新首富:一个多月身家增长77亿美元
    滴滴:设立1000万美元专项基金,援助海外司机骑手
    疫情查询
    自动获取时间html代码
    搜索引擎你还用百度吗?为什么?
    实现QQ内打开链接跳转至浏览器
    QQ靓号资料空白且空间开通教程
    斐波那契数列计算html代码
  • 原文地址:https://www.cnblogs.com/ging/p/13467981.html
Copyright © 2011-2022 走看看