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

时间:2017-06-29 05:04:56

标签: nexus nexus3

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

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

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

3 个答案:

答案 0 :(得分:9)

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

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

  1. 在nexus服务器上安装用户所有者的nexus登录名(例如 连结)

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

    $ cd /opt/nexus

  3. 运行Java东方控制台:

    $ 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. 获取上一步中具有回购行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

另一个有用的查询

按存储库名称的总大小(而不是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;

答案 1 :(得分:3)

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

enter image description here

答案 2 :(得分:-1)

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

/opt/nexus/sonatype-work/nexus/storage# du -hs releases/
129G    releases/