从Jenkins工作区删除超过n天的文件

cwtwac6a  于 2023-01-12  发布在  Jenkins
关注(0)|答案(1)|浏览(166)

这肯定是一个重复的问题。很抱歉
我的使用案例正是这个共享的SO问题中的一个:Delete files older than X days in Jenkins workspace
但是这个解决方案对我不起作用,我试着添加一个在博客中提到的post build步骤。

${WORKSPACE}/*.xml -type f -mtime +6 -delete

虽然我已经授予了工作区目录的所有可执行权限,但最终出现权限被拒绝错误。我想删除驻留在Jenkins中超过6天的.xml文件。脚本是否正确?

eeq64g8w

eeq64g8w1#

您可以使用find和rm命令从Jenkins工作区中删除超过特定天数的文件。以下是如何执行此操作的示例:

find ${WORKSPACE} -type f -mtime +30 -exec rm {} \;

此命令将查找$WORKSPACE目录中修改时间超过30天的所有文件并将其删除。
您可以将30替换为要用作截止日期的天数。
或者,您可以使用以下命令

find ${WORKSPACE} -mtime +30 -exec rm -f {} +

这样更有效,因为它将减少exec系统调用的数量
您可以将此命令放在shell脚本中,然后作为Jenkins中的构建步骤执行该脚本。
为此:
1.转到Jenkins作业配置
1.向下滚动至“构建”部分
1.点击“添加构建步骤”
1.选择“执行shell”
1.粘贴命令:保存
您还可以在Jenkins正在运行的服务器上将删除作为一个cron作业进行调度,以便定期运行,这样您就不需要将构建步骤添加到作业配置中。
请注意,此命令将永久删除文件而不进行确认。请确保在主工作区中运行此命令之前进行小规模测试,并备份您的数据。

相关问题