Jenkins磁盘空间自动清理


01

背景介绍

Jenkins作为一款广泛应用于自动化构建、测试与部署的强大工具,在长时间运作后,其服务器上积累了大量的构建历史、工作空间、日志文件以及其他临时数据。每次构建都会生成一系列的工作产物,随着时间的推移,这些数据逐渐占据了大量的磁盘空间,尤其在频繁构建和长期运行的项目中更为明显
Jenkins的磁盘清理的内容主要包括两大块,一是构建记录(Build Artifacts),二是工作空间(workspace)。这两部分是占用磁盘空间最多的目录。清理空间的方式也是多种多样,可以通过登陆到Jenkins控制台,进入到每个Job的配置页面,选择删除旧的构建和Artifact,也可以通过安装插机,例如Workspace Cleanup Plugin,在构建后自动清理工作空间,还可以通过脚本的方式自定义脚本的方式按照特定天数删除旧构建。本文我们介绍的是通过自定义脚本的方式,保留特定天数的构建记录。

02

实现步骤

1. 编写脚本,该脚本实现逻辑主要是通过判断目录的最新时间,保留近一个月的构建记录,超过一个月的就自动删除,通过find命令定义需要清理的项目目录,如下:

#!/bin/bash

#jenkins 构建项目目录
DIR="/home/user/.jenkins/jobs/"

#保留天数
OLDEST_DATE=$(date -d "$(date +%Y-%m-%d) -30 days" +%s)

#添加项目 "Product" 和 "Dev"
for DIRECTORY in $(find "$DIR" -maxdepth 1 -type d -name "Product" -o -name "Dev" | sort); do
  if [ -d "$DIRECTORY/builds" ]; then
    echo "Processing $DIRECTORY/builds directory..."
    find "$DIRECTORY/builds" -maxdepth 1 -type d -name "[0-9]*" | while read LINE
    do
      MOD_DATE=$(stat -c %Y "$LINE")
      if [[ $MOD_DATE -lt $OLDEST_DATE ]]; then

        echo "Deleting old directory ${LINE}"
        ls -ld ${LINE}
        rm -rf "${LINE}"
      fi
    done
  else
    echo "Skipping $DIRECTORY/builds directory..."
  fi
done

2. 添加定时任务

#crontab -e 
0 23 * * * /root/script/Jenkins_disk_clenup.sh > /dev/null 2>&1 &


03

知识扩展

Jenkins目录结构

1. config.xml:Jenkins根配置文件,包含全局配置信息。
2. jobs目录:存储各个构建作业(Job)的配置和状态信息,每个job在该目录下都有一个子目录(项目构建的名称)。
  • <job_name>/config.xml:存储该job的配置详情。
  • <job_name>/builds/:每个构建编号下有构建结果和相关的工件(artifacts)。
3. workspace/<job_name>:存储每个job的工作空间,当Jenkins执行构建时,会在此处下载源代码并执行构建过程。
4. plugins目录:存放已安装的Jenkins插件及其相关数据。
5. logs目录:存放Jenkins和各个插件的日志文件。
6. userContent目录:放置可供HTTP访问的静态文件。
7. nodes目录:在分布式环境中,用于存储节点(agent)的配置信息。
8. credentials.xml:存储凭证信息,如访问Git仓库或其他服务所需的认证凭据。
Jenkins磁盘空间自动清理


MUSIC

Jenkins磁盘空间自动清理

♬..♩~ ♫. ♪..

END


Jenkins磁盘空间自动清理


Jenkins磁盘空间自动清理

推荐阅读

Jenkins磁盘空间自动清理

实用系列!企业内网Linux软件安装神器

太强了!利用python批量巡检服务状态

超实用!利用Nginx实现文件下载,效率翻倍

高效部署!使用Docker Compose快速搭建Harbor私有镜像仓库

原文始发于微信公众号(Linux运维之旅):Jenkins磁盘空间自动清理

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/273773.html

(0)
明月予我的头像明月予我bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!