删除Jenkins工作区中超过X天的文件

时间:2015-09-28 10:23:51

标签: jenkins jenkins-plugins

我们有一个Jenkins工作,生成html报告并放在工作区/报告中。我们一直在使用" Workspace Cleanup Plugin"所以我们只能保留最后一份报告。我们希望保留过去X天内创建的报告并删除旧报告。有没有可以自动化的方法或插件?

3 个答案:

答案 0 :(得分:2)

将某些东西放入作业自己的工作空间作为需要稍后访问的存档并不是一个好主意。有人可能最终清理工作区(手动或通过jenkins构建前或构建后步骤),所有宝贵的数据和统计信息都将消失。

我建议使用其他目录发布报告,然后在其中手动运行清理。您也可以定义Jenkins全局参数(plugin),例如REPORT_ROOT=/home/${USER}/reports,并在作业配置中将其用于将html报告保存到${REPORT_ROOT}/${JOB_NAME}

要进行清理,您需要运行find ${REPORT_ROOT} -type f -mtime +2 -delete,前提是没有为每个单独的报告创建父目录。这可以在单独的作业中运行,也可以作为发布html报告或作业本身的作业的子项目运行。 -mtime +2表示超过2天。

如果每个版本都有自己的html报告目录,那么清理将是find ${REPORT_ROOT}/${JOB_NAME} -type d -mtime +2 -delete

答案 1 :(得分:1)

使用PeriodicBackupPlugin

它有助于定期收回数据备份,并有一个BackupExecutor,它将检查每个位置的现有备份,并删除早于配置中定义的X天数的备份数。

检查图像以获取有关配置的信息。

enter image description here

答案 2 :(得分:0)

Configuration Slicing Plugin可以帮助您