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

news2025/7/16 8:01:02

定时任务(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


作用:到十进位

示例:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git导出增量包的操作步骤

前言在项目开发部署中,通常是将一个Git项目全量打包发布,但有的场景只需要导出有变更的那部分文件,增量发布,此时就需要使用Git导出增量包了。一、查看提交记录拿到提交ID码①例如使用的gitlab使用方法参考下图(一目了然) 【推荐】…

利用机器学习(mediapipe),进行人手的21个3D手关节坐标检测

感知手的形状和动作的能力可能是在各种技术领域和平台上改善用户体验的重要组成部分。例如,它可以构成手语理解和手势控制的基础,并且还可以在增强现实中将数字内容和信息覆盖在物理世界之上。虽然自然而然地出现在人们手中,但是强大的实时手感知力无疑是一项具有挑战性的计…

【基础算法】字符串哈希

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…

逆风翻盘拿下感知实习offer,机会总是留给有准备的人

个人背景211本,985硕,本科是计算机科学与技术专业,研究生是自学计算机视觉方向,本科主要做C和python程序设计开发,java安卓开发,研究生主要做目标检测,现在在入门目标跟踪和3d目标检测。无论文&…

区分效度全流程分析

基本说明 区分效度(又称判别效度、区别效度),其实质也是一种结构效度。区分效度强调本不应该在同一因子的测量项,确实不在同一因子下面。比如说,测量项A和 B分别测量两个属性,应该分属于因子A和因子B中&…

正交实验与极差分析

正交试验极差分析流程如下图: 正交试验说明 正交试验是研究多因素试验的设计方法。对于多因素、多水平的实验要求,如果每个因素的每个水平都要进行试验,这样就会耗费大量的人力和时间,正交试验可以选择出具有代表性的少数试验进行…

【Java基础 下】 027 -- 异常、File、综合案例

目录 一、异常 1、异常的分类 ①、Error ②、Exception ③、小结 2、编译时异常和运行时异常 ①、编译时异常 ②、运行时异常 ③、为什么异常要分成编译时异常和运行时异常? ④、小结(运行时异常和编译时异常的区别) 3、异常的作用 ①、查看b…

百万数据excel导出功能如何实现?

最近我做过一个MySQL百万级别数据的excel导出功能,已经正常上线使用了。 这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助。 原始需求:用户在UI界面上点击全部导出按钮…

基于Java的浏览器的设计与实现毕业设计

技术:Java等摘要:当今世界是一个以计算机网络为核心的信息时代,互联网为人们快速获取、发布和传递信息提供了便捷,而浏览器作为互联网上查找信息的重要工具,给人们提供了巨大而又宝贵的信息财富,受到了大家…

苹果ios签名证书的生成方法

在使用hbuilderx打包uniapp或html5应用的时候,假如是打包ios应用,是需要ios签名证书,和证书profile文件的,这个证书要求是p12格式的证书,profile文件又叫描述文件。 这两个文件,需要在苹果开发者中心生成&…

利用关联来发现复杂攻击模式

日志是网络活动的重要依据,包含了关于您网络上所有用户和系统活动的详尽信息。基本日志分析可帮助您轻松地对数百万个日志进行分类,并挑选出可以表明存在可疑活动的日志,识别与正常网络活动不符的异常日志。通常,单独查看某个日志…

WindowsPowerShell 停止、启动、暂停和重启服务、卸载服务

PowerShell 停止、启动、暂停和重启服务、卸载服务 PowerShell 停止、启动、暂停和重启服务 官文 powershell卸载服务 官文 目录PowerShell 停止、启动、暂停和重启服务、卸载服务停止、启动、暂停和重启停止服务启动服务暂停服务重启服务卸载移除服务停止、启动、暂停、重启…

WIFI 安全总论

一、总体逻辑安全策略认证机制 加密机制为了增强无线网络安全性,至少需要提供认证和加密两个安全机制:1、 认证机制:认证机制用来对用户的身份进行验证,以限定特定的用户(授权的用户)可以使用网络资源。2、…

VBS带你领略脚本语言的快乐!(实战篇—刷字数)

用VBS脚本刷爆搜狗输入法 前言 偶然一次打开了搜狗输入法的个人主页,看到这135万字,不禁想起当年高中时为了跟同学装逼,上课挂脚本刷字数的“光荣战绩”,很快啊,我就在古老的硬盘中找到了它,以我如今的智慧…

Tesseract-OCR命令及WPF简单使用

Tesseract 是一个开源的 OCR 引擎,可以识别多种格式的图像文件并将其转换成文本,最初由 HP 公司开发,后来由 Google 维护。 下载地址:https://digi.bib.uni-mannheim.de/tesseract/ 其中文件名中带有 dev 的为开发版本&#xff0…

无广告的视频二维码生成教程(组图介绍)

如今,二维码的应用越来越广了,也非常方便,那么如何把视频转换生成二维码呢?网页地址转换二维码的工具很多,但视频转换二维码的工具,可就比较少了,今天来教教大家如何实现。 应用场景及需求&…

JavaScript 测试 jQuery

文章目录JavaScript 测试 jQuery引用 jQueryjQuery 描述javascript 方式测试 jQueryJavaScript 测试 jQuery 测试 JavaScript 框架库 - jQuery 引用 jQuery 如需测试 JavaScript 库&#xff0c;您需要在网页中引用它。 为了引用某个库&#xff0c;请使用 <!DOCTYPE html…

史上最详细的小程序测试用例模板,以后再也不怕测试用例不会写了

目录 1. 文档介绍 1.1 文档目的 1.2 文档范围 1.3 读者对象 1.4 术语与缩写解释 2. 功能测试用例 2.1 被测试对象的介绍 2.2 测试范围与目的 2.3 测试环境与测试辅助工具的描述 2.4 功能测试用例 附录&#xff1a;评审意见 1. 文档介绍 1.1 文档目的 设计测试用例…

Mybatis-plus 分页集成以及基本使用总结 入门和案例 注解连表查询分页案例等

简介 Mybaits-plus 是mybits 的升级版&#xff0c;从mybaits 升级到mybaits-plus 可以实现平滑升级 Mybaits-plus 本身提供了大量的基本查询方法以及强大的 Wrapper(包装) 类 用于查询的 QueryWrapper 以及 更新的 UpdateWrapper &#xff0c;使用Wrapper 基本已经可以构建大…

记忆总掉线?这些行为太伤脑!

人体老化过程中&#xff0c;记忆力的衰退不可避免&#xff0c;这种属于“良性”的记忆衰退。但非“良性”的记忆衰退可要重视&#xff0c;很可能是痴呆症的早期征兆。由于各种原因&#xff0c;我们各种熬夜。作息的不规律扰乱大脑神经系统的调节。这种长期慢性损害大脑&#xf…