【问题标题】:tmp directory not cleaning while using jenkins使用 jenkins 时不清理 tmp 目录
【发布时间】:2014-01-14 12:49:15
【问题描述】:

我在 AIX 7.0 上使用 jenkins 1.451 执行签出、编译并将代码推送到我们的环境。

在 jenkins 上还配置了 Sonar 作业。在这里,Jenkins 不是使用 apache 或 RPM 实现的。我们刚刚提取了战争,正在使用 2-3 个作业来编译和推送代码。我知道詹金斯使用 tmp 目录来运行作业。我在 /tmp 目录中看到了以下文件,我猜这些文件即使工作完成也会留下。

PFB 大量存在的文件的名称

1.xbean2456858964200604902.d
2.jetty-0.0.0.0-8080-jenkins.war-_jenkins-any-
3.sonar-batch21583185812212985831389617600951909000
4.winstone8285452915548449514.jar
5.fixcrlf1440303164

有大量此类文件是否正常。我们如何清理这些文件???

非常感谢

【问题讨论】:

    标签: jenkins tmp


    【解决方案1】:

    /tmp 中的文件不太可能对删除有害。在大多数系统上,/tmp 在重新启动时会被清除。

    您可以添加另一个 jenkins 作业,并将构建触发器设置为“在构建其他项目后构建”,并列出所有其他项目

    然后执行构建“执行shell”命令,例如

    find /tmp -user jenkins -print0 | xargs -0 rm -f
    

    其中“jenkins”是 jenkins 用户名

    如果用户名可能与也写入临时文件的其他进程共享,那么您需要通过设置 java.io.tmpdir 强制 jenkins 将其临时文件写入已知的替代目的地

    【讨论】:

    • 它可能很有用,但我们正在使用 jenkins 和其他作品的通用用户 ID。使用你的想法可能会删除那些不是 jenkins 生成的文件。我说得对吗?
    • 在这种情况下,我想您需要强制 jenkins 将其所有临时文件写入 /tmp 以外的其他位置,这样您就可以确定它们都是 jenkins 临时文件。更新答案
    • "/tmp 在大多数系统上在重新启动时被清除。" - 对于永远不会重新启动的构建服务器来说并不是很方便。
    • @Nyerguds 可以在构建系统上使用不可变的基础设施和其他类似的策略。不只是清除 /tmp 可能会让您希望这样做。例如,我发现我在某个地方使用的特定版本的 jenkins 偶尔会在更新后死掉。由于此 jenkins 在 VM 中运行,因此很容易将其从备份回滚到更新前状态
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多