我希望每周自动备份一次在我们的主服务器和从服务器上运行的所有作业的Jenkins日志文件,将它们移至aws的s3并在完成后从各自的目录中删除它们。

我的问题是,是否有一个现有的插件可以满足我的需要,或者我需要手动执行此操作?

我找到了定期备份插件,但是它似乎只在本地备份,并且集中在配置文件上,而不是日志文件上(尽管我可以使用负路径忽略日志文件之外的所有内容……这将是一个巨大的痛苦)。同样,ThinBackup也是仅配置的。我希望有人可能没有看到谷歌搜索。

#1 楼

从历史上看,我对此有所不同。我为每个作业添加了一个构建后步骤,并让它在执行时通过S3插件将输出复制到S3。这篇博客文章非常详细地介绍了运动部件。

您可能要参考


wget -O console-output.log $ {BUILD_URL} consoleText


作为构建任务中相关工作的输出。

#2 楼

Corey的答案最终启发了我重新审视可用的插件,这次考虑了可以在构建后步骤应用于作业的任何内容。

我找到了AWS CloudWatch Logs Publisher插件,这是一个构建后步骤,可将您的日志推送到CloudWatch。并不是我们最初想到的目的地,但是它对我们有用。易于配置!唯一的缺点是它当前没有管道功能。

#3 楼


您可以使用Boto3软件包编写python脚本,以将日志上传到s3存储桶并清除主服务器和从服务器中的日志。
然后创建一个作业来运行python脚本。使作业按期望的时间间隔运行。
您还可以使用诸如Splunk之类的一些监视工具监视jenkin,在其中您可以实时查看仪表板中的构建趋势并创建警报以发送邮件通知或触发jenkins作业当内存已满时,它将清除日志。