Linux 脚本(sh)之 定时清理悬空、指定镜像,自动增长版本号

定时任务(images_clean)

位置:/mydata/hostmachine_jenkins/images_clean.sh

作用:Jenkins发布之后,遗留下来的老版镜像以及悬空镜像进行定时清理

注意:如果你需要发布新的服务,那么你需要进入当前目录,对images_clean.sh脚本进行添加对应的服务镜像

vim images_clean.sh
在这里插入图片描述

时间区间:

linux 内置定时任务 命令:cronlab -e 每天白天从十点四十开始,每隔两小时执行一次脚本

在这里插入图片描述

日志存在 /mydata/hostmachine_jenkins/images_clean.log

在这里插入图片描述

版本自动增长脚本(version_up.sh)

位置:/mydata/hostmachine_jenkins/version

作用:当Jenkins发布部署项目的时候,项目中的jenkinsfile文件会调用该脚本,并使脚本自动增加。
在这里插入图片描述

该脚本有三个,未带汉字的是真正调用执行的脚本,下面带汉字两个的区别是:

version_up_不进位.sh

在这里插入图片描述

#!/bin/bash
appname=$1
appversion=$2
tag=${1?Need a app name}
tag=${2?Need a app version}
if [ -f "/mydata/hostmachine_jenkins/version/$appname" ];then
    echo "文件存在"
else
    touch /mydata/hostmachine_jenkins/version/$appname
    echo V0.0.0 > /mydata/hostmachine_jenkins/version/$appname
fi
version=`head -1 /mydata/hostmachine_jenkins/version/$appname` #非单引号,是ESC 下面的键
increment_version ()
{
  declare -a part=( ${1//\./ } )
  declare    new
  declare -i carry=1

  CNTR=${#part[@]}-1
  len=${#part[CNTR]}
  new=$((part[CNTR]+carry))
  part[CNTR]=${new}
  new="${part[*]}"
  new1="${new// /.}"
echo $new1
sed -i "s/$version/$new1/g" /mydata/hostmachine_jenkins/version/$appname
}
if [ $2 != "1" ];then
echo $2 > /mydata/hostmachine_jenkins/version/$appname
else
increment_version $version
fi

作用:只增加个位,到十不进位

示例:
在这里插入图片描述

version_up_进位.sh

在这里插入图片描述

#!/bin/bash
appname=$1
appversion=$2
tag=${1?Need a app name}
tag=${2?Need a app version}
if [ -f "/mydata/hostmachine_jenkins/version/$appname" ];then
    echo "文件存在"
else
    touch /mydata/hostmachine_jenkins/version/$appname
    echo V0.0.0 > /mydata/hostmachine_jenkins/version/$appname
fi
version=`head -1 /mydata/hostmachine_jenkins/version/$appname` #非单引号,是ESC 下面的键
increment_version ()
{
  declare -a part=( ${1//\./ } )
  declare    new
  declare    new1
  declare -i carry=1

  for (( CNTR=${#part[@]}-1; CNTR>=0; CNTR-=1 )); do
    len=${#part[CNTR]}
    new=$((part[CNTR]+carry))
    [ ${#new} -gt $len ] && carry=1 || carry=0
    [ $CNTR -gt 0 ] && part[CNTR]=${new: -len} || part[CNTR]=${new}
  done
  new="${part[*]}"
  new1="${new// /.}"
echo $new1
sed -i "s/$version/$new1/g" /mydata/hostmachine_jenkins/version/$appname
}
if [ $2 != "1" ];then
echo $2 > /mydata/hostmachine_jenkins/version/$appname
else
increment_version $version
fi


作用:到十进位

示例:

在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

折翼、csf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值