从本地nexus存储库中删除超过2年的工件

时间:2012-07-17 08:17:04

标签: nexus

我们正在某些旧硬件上运行nexus,这些硬件的磁盘空间有限,并希望删除超过某个阈值的工件。

除了find和curl

的组合之外,还有什么方法可以做到这一点

5 个答案:

答案 0 :(得分:8)

有一个可以自动删除旧快照版本的计划任务:

不幸的是,这不适用于托管发布存储库。

答案 1 :(得分:5)

正如gavenkoa的答案中博客中的评论Sonatype blog post linked所提到的那样,因为Nexus 2.5有一个内置的"从存储库删除版本"计划任务,可配置为删除保留定义数字的旧版本。

这足以满足我们的需求。

答案 2 :(得分:4)

删除所有无法访问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个版本以外的所有内容)。

答案 3 :(得分:0)

自动清除超过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

答案 4 :(得分:0)

对于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)