磁盘清理

Jenkins 是一个自动化构建工具,用于持续集成和持续部署。在 Jenkins 运行过程中,可能会产生大量的构建数据和临时文件,导致磁盘空间被占满。为了避免这种情况,可以采用以下方法清理 Jenkins 的磁盘空间。

  1. 使用 Jenkins 插件进行清理(有点麻烦)

    安装并使用 Workspace Cleanup Plugin 插件。这个插件可以在每次构建完成后自动清理工作空间,删除不需要的文件。

    安装插件后,在构建任务中添加一个 "Post-build Action",选择 "Clean workspace"。可以设置清理策略,例如保留最近的 n 个构建,或者在构建完成后立即清理。

  2. 定期删除旧的构建历史

    在 Jenkins 的系统设置中,可以为每个项目设置保留构建历史的时间。例如,可以设置仅保留最近 30 天的构建历史。这样可以避免磁盘被过多的旧构建数据占用。

    要设置保留构建历史的时间,进入项目的配置页面,在 "Discard old builds" 选项中设置 "Max # of builds to keep" 和 "Max days to keep builds"。

  3. 手动清理磁盘空间

    如果需要立即清理磁盘空间,可以手动删除 Jenkins 工作空间中的不需要的文件。通常,Jenkins 的工作空间位于 $JENKINS_HOME/workspace 目录下。可以定期检查这个目录,并删除不需要的构建数据和临时文件。

  4. 使用脚本进行清理

    可以编写一个脚本,定期检查并删除 Jenkins 工作空间中的旧文件。例如,可以使用以下 shell 脚本清理 30 天前的构建数据:

    find $JENKINS_HOME/workspace -type f -mtime +30 -exec rm -f {} \\;
    

    将此脚本添加到定时任务 (例如使用 cron),以定期执行清理操作。

    这个命令是用来删除Jenkins工作目录下所有修改时间早于30天的文件。下面对这个命令的各个部分进行解释:

    这个命令可以用来清理Jenkins工作目录中旧的构建产物或日志文件,以释放磁盘空间。不过,使用这个命令需要谨慎,因为它会永久删除文件而不需要确认。建议在对所有文件执行删除操作之前,先在一个小范围内测试命令的效果。


生产使用

1.保留构建次数7天5个

全局设置

可能需要通过Workspace Cleanup Plugin使用

2.定时清理

find $JENKINS_HOME/workspace -type f -mtime +30 -exec rm -f {} \\;
core Job

jenkins piepline 清理构建(不推荐)

在Jenkins Pipeline中,你可以使用deleteDir()函数来清理构建产生的临时文件和目录。deleteDir()函数会删除当前工作目录下的所有文件和目录,包括子目录。

以下是在Jenkins Pipeline中清理构建的步骤:

  1. 在Jenkins Pipeline的脚本中,添加deleteDir()函数来清理构建产生的临时文件和目录。例如:
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                // 构建步骤
            }
        }
        stage('Cleanup') {
            steps {
                deleteDir()
            }
        }
    }
}