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%)
    更新成功!
    
  • 相关阅读:
    POJ-1189 钉子和小球(动态规划)
    POJ-1191-棋盘分割(动态规划)
    Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
    Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 729 我的日程安排表 I(二叉树)
    Java实现 LeetCode 728 自除数(暴力)
    Java实现 LeetCode 728 自除数(暴力)
    Java实现 LeetCode 728 自除数(暴力)
  • 原文地址:https://www.cnblogs.com/ging/p/13467981.html
Copyright © 2011-2022 走看看