获取Nexus 3中特定存储库的大小

问题描述 投票:14回答:3

如何在Nexus 3中获得特定存储库的大小?

例如,Artifactory通过UI显示存储库“磁盘大小”。

Nexus有类似的东西吗?如果不是 - 我如何通过脚本获取此信息?

nexus nexus3
3个回答
12
投票

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

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

  1. 在nexus服务器上使用用户所有者nexus安装进行登录(例如nexus)
  2. 转到应用程序目录(例如/ opt / nexus): $ cd /opt/nexus
  3. 运行java orient控制台: $ 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| +----+------------+

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

another useful queries

按存储库名称的摘要大小(而不是5和6步):

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

按大小排名前10的存储库:

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

3
投票

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

enter image description here


-1
投票

Nexus UI似乎没有这样的功能。要获取磁盘使用率,您可以登录Nexus服务器并转到存储目录。在那里,您将找到所有存储库作为单独的目录。

/opt/nexus/sonatype-work/nexus/storage# du -hs releases/
129G    releases/
© www.soinside.com 2019 - 2024. All rights reserved.