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

news/2024/4/26 22:28:50/文章来源:https://blog.csdn.net/qq_42956993/article/details/129201293

定时任务(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" ];thenecho "文件存在"
elsetouch /mydata/hostmachine_jenkins/version/$appnameecho 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    newdeclare -i carry=1CNTR=${#part[@]}-1len=${#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" ];thenecho "文件存在"
elsetouch /mydata/hostmachine_jenkins/version/$appnameecho 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    newdeclare    new1declare -i carry=1for (( CNTR=${#part[@]}-1; CNTR>=0; CNTR-=1 )); dolen=${#part[CNTR]}new=$((part[CNTR]+carry))[ ${#new} -gt $len ] && carry=1 || carry=0[ $CNTR -gt 0 ] && part[CNTR]=${new: -len} || part[CNTR]=${new}donenew="${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

作用:到十进位

示例:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_73877.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快到金3银4了,准备跳槽的可以看看

前两天跟朋友感慨,今年的铜九铁十、裁员、疫情导致好多人都没拿到offer!现在已经12月了,具体明年的金三银四只剩下两个月。 对于想跳槽的职场人来说,绝对要从现在开始做准备了。这时候,很多高薪技术岗、管理岗的缺口和市场需求也…

高品质运动耳机哪款更好用、运动耳机最好的牌子推荐

在运动的时候大家都会选择戴上耳机,用音乐来”调味“,让跑步的过程不那么枯燥乏味。说到运动耳机,除了老生常谈的音质以外,耳机的材质、耳机的工艺,耳机的佩戴稳固性等,也都在影响着用户的体验,…

未来土地利用模拟FLUS模型

未来土地利用模拟(FutureLand-Use Simulation, FLUS)模型1 模型简介1.1 基于ANN 的适宜性概率计算1.2 基于自适应惯性机制的元胞自动机1.3 模拟精度评价参考流域 径流变化是 自然因素和 人为因素共同作用的结果,其中人为因素最为直接的方式就…

流感来了,这类人最容易感染!

最近有学校因多名学生发热停课,浙江多地疾控也提醒大家现在是进入了甲流高发期。今天就来讲一讲甲流该如何防护。首先甲流与普通感冒不同,感冒病原体是鼻病毒、冠状病毒、副流感病毒等。流感病毒是正粘病毒科,根据核蛋白和基质蛋白M1抗原性的…

Fabric.js使用说明Part 2

目录一、Fabric.js使用说明Part 1Fabric.js简介 开始方法事件canvas常用属性对象属性图层层级操作复制和粘贴二、Fabric.js使用说明Part 2锁定拖拽和缩放画布分组动画图像滤镜渐变右键菜单删除三、Fabric.js使用说明Part 3自由绘画绘制背景图片绘制文本绘制线和路径一、锁定Fab…

FSM——squirrel状态机使用

FSM——squirrel状态机使用 1 FSM介绍 1.1 概念 FSM(finite state machine):有限状态机 是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。核心内容:有限个状态、通过外部操作引起状态的转移。用来对状态的流转进行解耦&a…

高等工程数学张韵华版第二章课后题

答案仅供参考 本章内容 第 2 章 线性空间 2.1 向量的相关性 2.1.1 线性组合和线性表示 2.1.2 线性相关与线性无关 2.2 秩 2.2.1 向量组的秩 2.2.2 矩阵的秩 2.2.3 相抵标准形 2.3 线性空间 2.3.1 线性空间的定义 2.3.2 线性子空间 2.4 维、基、坐标 2.4.1 维、基、坐标的定义…

复杂场景的接口测试

测试场景一:被测业务操作是由多个API调用协作完成 背景:一个单一的前端操作可能会触发后端一系列的API调用,此时API的测试用例就不再是简单的单个API调用,而是一系列API的调用 存在的情况:存在后一个API需要使用前一个…

springboot+vue软件bug项目测试过程管理系统

config:主要用来存储配置文件,以及其他不怎么动用的信息 controller:项目的主要控制文件 dao: 主要用来操作数据库 entity: 实体,用来放与数据库表里对应的实体类,表中的字段对应类中的属性值,并…

视觉SLAM数据集(一):TUM DataSet

首先给出数据集下载地址:TUM Dataset Download。 如果你是第一次做实验,建议下载xyz的数据集,因为它的动作相对很小,只包含桌面上的一小部分。一旦成功测试,就可以试试desk数据集,它包含四张桌子和几个闭环…

C语言的学习小结——数组

一、一维数组的创建与初始化 1、格式: type_t arr_name[const_n];//type_t 是指数组的元素类型 //const_n 是一个常量表达式,用来指定数组的大小 注: 数组是使用下标来访问的,下标从0开始。 数组的大小可以通过计算得到&…

电商平台商品详情接口的应用场景

API接口的定义价格、库存量、发货地点等。此外,它还可以提供商品的详细信息,包括商品的图片、详细描述、规格参数、售后服务等。这些信息可以帮助用户更好地了解商品,从而更好地选择商品。其次,电商平台商品详情接口的实现原理是基…

使用Chemistry Development Kit (CDK) 来进行化学SMILES子结构匹配

摘要 SMILES是一种用于描述化合物结构的字符串表示法,其中子结构搜索是在大规模化合物数据库中查找特定的结构。然而,这种搜索方法存在一个误解,即将化合物的子结构视为一个独立的实体进行搜索,而忽略了它们在更大的化合物中的上…

极光笔记 | 埋点体系建设与实施方法论

PART 01 前 言随着网络技术的发展,从粗犷型到精细化运营型,再到现在的数字化运营,数据变得越来越细分和重要,不仅可以进行策略调整,还可以实现自动化的精细化运营。而数据价值的起点就是埋点,只有合理地埋点…

lammps教程:Ovito选择特定晶粒的方法

大家好,我是小马老师。 本文介绍如何使用ovito提取特定的晶粒。 在多晶的lammps模拟中,可能会对某一个特定晶粒的变形情况进行分析,此时,需要找到这个晶粒,并进行单独分析。 ovito有专用的晶粒识别命令,…

【系统分析师之路】2022上案例分析历年真题

【系统分析师之路】2022上案例分析历年真题 【系统分析师之路】2022上案例分析历年真题【系统分析师之路】2022上案例分析历年真题2022上案例分析历年真题第一题(25分)2022上案例分析历年真题第二题(25分)2022上案例分析历年真题第…

RocketMQ 5.x新版本部署优化一览

​ RocketMQ从2022年9月份开始推出了新的5.x大版本。相比于之前的4.x版本,5.x版本向云原生前进了一大步。在增强原因功能的基础上,更是支持多语言客户端,周边生态也进行了补强和完善,明显可以看到离Kafka老大哥又近了很大一步。 …

由Geoscene Enterprise 2.1 升级至Geoscene Enterprise 3.1

文章目录一、升级前工作二、升级Geoscene portal三、升级Web Adaptor(针对portal门户)四、升级Server 站点(作为门户托管服务器)五、升级Web Adaptor(针对server)六、升级Data Store需求:由GeoS…

springboot自定义starter时使用@AutoConfigureBefore、@AutoConfigureAfter的细节问题

正常利用springboot的自动装配 ConfB Configuration(proxyBeanMethodsfalse) public class ConfB {public ConfB(){System.out.println("ConfB构造方式执行...");} }不加spring.factories 项目包结构 此时resources中没有spring.factories 执行结果 2023-02-24…

教你用反射机制如何几分钟搭建完后端

如果想快速搭建后台跨域使用这些技术 反射mybatis-plusjson 反射可以实现动态数据的传输 一般对数据库进行操作肯定离不开这些代码 如果我们用反射机制只需要这一个就行 而说到反射的好处,一般情况下我们做增删改查需要大量的接口才能完成,而用反射我…