编写部署用到的部分shell脚本收集

自动化部署的时候经常需要写一堆的shell,这里放一些我整理出来比较公用的脚本。

1.根据端口kill掉进程(使用于大部分的关闭指令)

port=8766
#根据端口号查询对应的pid
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
#杀掉对应的进程,如果pid不存在,则不执行
if [ -n "$pid" ]; then
kill -9 $pid;
fi

2.循环遍历文件夹并取出某种类型的文件

比方说现在有一个文件夹a,需要遍历拿到这个文件夹下面所有的jar

#用于遍历文件夹的函数
function read_dir(){
for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令
do
 if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错
 then
 read_dir $1"/"$file
 else
 echo $1"/"$file 
 if [[ $1"/"$file  =~ .jar$ ]];then          #把这里的.jar换成.zip就能拿出所有以zip结尾的压缩包,以此类推
  mv -f $1"/"$file  ${WORKSPACE}/jars
 fi
 fi
done
}

#调用遍历函数,直接遍历文件夹
read_dir 目录

3.替换jar包里面的文件

很多时候我们需要替换到jar包里面的一些东西,比方说最经典的application.yml, 下面的$1就是调用函数输入的第一个参数,比方说下面的*-1.0-SNAPSHOT.jar      


CONF_SOURCE=你的存放将要替换的application.yml的路径
function replace_conf(){
jar -xvf   $1  BOOT-INF/classes/application.yml
cp   $CONF_SOURCE/application.yml   BOOT-INF/classes/application.yml
jar uvf $1 BOOT-INF/classes/application.yml
}

#调用更换配置函数
replace_conf   *-1.0-SNAPSHOT.jar         

4.强制复制替换

这个命令我不止一次写成/cp

cp
原文地址:https://www.cnblogs.com/daysn/p/11230163.html