获取Nexus 3中特定仓库的大小

30

我该如何在Nexus 3中获取特定仓库的大小?

例如,Artifactory可以通过UI显示“磁盘上的仓库大小”。

Nexus是否有类似的功能?如果没有-我该如何通过脚本获取这些信息?

3个回答

40

您可以使用来自https://issues.sonatype.org/browse/NEXUS-14837的groovy脚本nx-blob-repo-space-report.groovy来使用管理员任务-对我来说速度太慢了

或者你可以从数据库中获取:

  1. 使用在nexus服务器上拥有nexus安装的用户登录(例如:nexus)

  2. 进入应用程序目录(例如:/opt/nexus):

    $ cd /opt/nexus

  3. 运行java orient console:

    $ java -jar ./lib/support/nexus-orient-console.jar

  4. 连接到本地数据库(例如:/opt/sonatype-work/nexus3/db/component):

    > CONNECT PLOCAL:/opt/sonatype-work/nexus3/db/component admin admin

  5. 通过repository_name值查找@RID列中的存储库行ID:

    > select * from bucket limit 50;

  6. 获取在上一步中找到的repo row id的所有资产的总和:

    > select sum(size) from asset where bucket = #15:9;

结果应该类似于(显然是按字节计算):
+----+------------+ |# |sum | +----+------------+ |0 |224981921470| +----+------------+

https://support.sonatype.com/hc/en-us/articles/115002930827-Accessing-the-OrientDB-Console中获取的nexus数据库连接步骤

另一个有用的查询

通过存储库名称汇总大小(代替第5和第6步):

> select sum(size) from asset where bucket.repository_name = 'releases';

前十大存储库,按大小排名:

> select bucket.repository_name as repository,sum(size) as bytes from asset group by bucket.repository_name order by bytes desc limit 10;

6
如果您正在使用Docker镜像(sonatype/nexus3),连接到正在运行的Docker容器后(sudo docker exec -it <container-name> /bin/sh),则可执行jar文件为:java -jar /opt/sonatype/nexus/lib/support/nexus-orient-console.jar,然后在此之后连接命令是 > CONNECT PLOCAL:/nexus-data/db/component admin admin - phillipuniverse
我的服务器上没有nexus-orient-console.jar,我正在使用版本OSS 3.15.2-01,这是企业版的功能吗? - 0xAA55
即使在 OSS 版本中也应该有它(我使用的是 3.15.1 版本,之前的版本也有)。 - Markus
我们如何检查发布存储库下的更多大小?我的意思是每个发布的大小? - ImranRazaKhan
不要跳过第一步 - 这会使 Nexus 无法访问数据库! 要纠正这个错误,请运行以下命令(假设 Nexus 是您的服务用户):chown -R nexus:nexus /opt/sonatype-work/nexus3/db - itshorty

10
将每个仓库分配给自己的Blob存储。

enter image description here


6
这是一个非常好的提示,适用于新存储库(我提高了它的赞),但对于现有存储库没有帮助。 - Ivan

0
您可以参考下面的GitHub项目。该脚本可以通过分析脚本生成的统计信息来帮助清除Nexus存储库上的存储空间。该脚本具有基于提示的用户输入功能,可以搜索/过滤结果,生成CSV输出文件,并以表格格式在控制台上打印输出。

Nexus Space Utilization - GitHub


您还可以参考下面关于同一主题的帖子。

Nexus空间利用-发布


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接