Bamboo build-dir过多的空间可以用cron工作清理吗?

问题描述 投票:4回答:2

我们使用Bamboo CI。许多计划中有多个竹本地代理和并行构建。 Bamboo-home中的build-dir有数百GB,分析显示它随着新功能分支的增加而不断增长。计划似乎在每个本地代理目录中都是重复的,也直接在build-dir中。

与过期的工件不同,Bamboo似乎并没有自己清理它。例如,如果删除了本地代理,则本地代理构建目录将永远占用大量空间。

可以将计划设置为在构建结束时进行清理,但是如果需要对构建进行事后验证,则会影响问题分析。

由于目录空间不足,我刚刚添加了每日cron任务,以定期删除超过21天未访问的文件和目录。当我第一次手动运行时,我从600GB分区中回收了300GB。我想知道其他人是否遇到过同样的问题,以及从长远来看外部清理build-dir是否安全。它会影响竹子的建造吗?是否有一些我错过的竹子选项会为我做这个?

在Atlassian网站上搜索没有帮助,也没有得到答案......其他人正在做些什么来驯服这个太空猪?

continuous-integration bamboo diskspace
2个回答
9
投票

cron作业已经运行了一段时间,没有任何问题,它正在控制空间使用。

我已将参数减少到15天。

我的crontab看起来像这样:

# clean up old files from working directory
0 20 * * * find /<path_to>/bamboo-home/xml-data/build-dir/ -depth -not -path *repositories-cache* -atime +15 -delete

# clean up old backups every Sunday
0 21 * * 0 find /<path_to>/bamboo-home/backups -type f -mtime +28 -delete

# remove any old logs from install directory after 15 days
0 22 * * * find /<path_to>/bamboo/logs/ -type f -mtime +15 -delete

# quick and dirty truncate catalina.out to stop it growing too large (or better still use logrotate) 
0 23 * * * cat /dev/null > /<path_to>/bamboo/logs/catalina.out

我希望这对于试图驯服竹子磁盘空间使用的其他人有用。第一份工作是重要工作,最后三份工作只是家务。

注:由于我的公司外包linux环境的独特情况,catalina.out上没有使用logrotate。我通常会建议logrotate,如果可能的话,而不是我快速和脏的截断方法 - 请参阅Jon V.的回答


2
投票

虽然cron的想法运作良好 - 我过去在Bamboo中也做过的事情就是“每次构建后清理工作目录”选项。基本上,对于任何给定的作业,都有一个配置选项可以清理给定计划/作业的相应build-dir/<build_plan_job>目录:

操作 - >配置计划 - >单击作业 - > Miscelaneous选项卡 - >第一个复选框

虽然这可以确保清除未来的构建临时区域,但它对现有和/或旧构建没有帮助。鉴于正常的git样式工作流程,你有很多分支(并且每个分支为它创建一个特定的作业ID(如PLAN-JOB_WITH_BRANCH_NUMBER-BUILD_NUMBER或类似的)快速变大/大。我只是做了一个快速检查,我们现在正在清理大多数构建的构建区域(至少是大型构建区域),但是我们已经拥有超过100Gig的构建区域,这些构建区域已经合并到了loooong之前。

谢谢你的cron例子,它应该对未来有用。

不相关:我使用Bamboo越多,我就越喜欢/讨厌它。

编辑:作为一般性评论,我会努力尝试使用SA来为catalina.out设置/实现logrotate规则 - 用/dev/null覆盖似乎是一个非常糟糕的主意,除非你已经把它们搞砸了像ELK或Splunk这样的东西。

我的/etc/logrotate.d/bamboo_catalina_out看起来像(使用你的路径):

/<path_to>/bamboo/logs/catalina.out {
  create 0660 bamboo bamboo
  compress
  copytruncate
  missingok
  rotate 10
  size 100M
}

最后 - 你有第三个和第四个cron脚本的原因是什么?

© www.soinside.com 2019 - 2024. All rights reserved.