【发布时间】:2018-12-18 19:55:29
【问题描述】:
我们在一些磁盘空间有限的旧硬件上运行 nexus,并希望删除超过某个阈值的工件。
除了 find 和 curl 的组合之外,还有其他方法吗?
【问题讨论】:
标签: nexus
我们在一些磁盘空间有限的旧硬件上运行 nexus,并希望删除超过某个阈值的工件。
除了 find 和 curl 的组合之外,还有其他方法吗?
【问题讨论】:
标签: nexus
有一个计划任务可以自动删除旧的快照版本:
很遗憾,这不适用于托管的发布存储库。
【讨论】:
正如在 givenkoa 的回答中的博客中的评论中提到的 Sonatype blog post linked 所述,自 Nexus 2.5 以来,有一个内置的“从存储库中删除版本”计划任务,可以将其配置为删除保留定义数量的旧版本。
这足以满足我们的需求。
【讨论】:
删除超过 100 天无人访问且超过 200 天未被修改的所有文件:
find . -type f -atime +100 -mtime 200 -delete
清理空目录:
find . -type d -empty -delete
或者查看https://github.com/akquinet/nexus_cleaner/blob/master/nexus_clean.sh 和相应的博客条目http://blog.akquinet.de/2013/12/09/how-to-clean-your-nexus-release-repositories/(删除除最近10 个版本之外的所有版本)。
【讨论】:
自动清除超过 30 天(你可以更改它)不从 nexus 3 下载 docker 图像
https://gist.github.com/anjia0532/4a7fee95fd28d17f67412f48695bb6de
# nexus3's username and pwd
username = 'admin'
password = 'admin123'
# nexus host
nexusHost = 'http://localhost:8081'
# purge repo
repoName = 'docker'
# older than days
days = 30
#change and run it
【讨论】:
对于 Nexus2,您可以使用我的 Spring Boot 应用程序https://github.com/vernetto/nexusclean,您可以根据日期和要保留的最少工件数定义规则,它会生成“rm -rf”命令(使用 REST API 是该死的)慢)。
对于 Nexus3,我肯定会使用 Groovy 脚本作为“执行管理任务”。一个贴在这里groovy script to delete artifacts on nexus 3 (not nexus 2)
【讨论】: