Получить размер определенного репозитория в Nexus 3

Как я могу получить размер определенного репозитория в Nexus 3?

Например, Artifactory показывает репозиторий «размер на диске» через пользовательский интерфейс.

У Nexus есть что-то подобное? Если нет - как я могу получить эту информацию по сценарию?


person Ivan    schedule 29.06.2017    source источник


Ответы (2)


Вы можете использовать административную задачу с помощью скрипта nx-blob-repo-space-report.groovy из https://issues.sonatype.org/browse/NEXUS-14837 - для меня получилось слишком медленно

Или вы можете получить его из базы данных:

  1. войти в систему с установкой nexus пользователя-владельца на сервере 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. узнать идентификатор строки репозитория в столбце @RID по значению репозитория_name:

    > select * from bucket limit 50;

  6. получить сумму для всех активов с идентификатором строки репо, найденным на предыдущем шаге:

    > 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;
person tmf glzkv    schedule 06.07.2018
comment
Если вы используете образ 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 - person phillipuniverse; 01.02.2019
comment
У меня на сервере нет nexus-orient-console.jar, я использую версию OSS 3.15.2-01, это функция версии Enterprise? - person 0xAA55; 29.03.2019
comment
он должен быть даже в версии OSS (у меня была версия 3.15.1, а также в предыдущих версиях). - person Markus; 03.05.2019

Назначьте каждому репозиторию собственное хранилище BLOB-объектов.

введите описание изображения здесь

person Thiago Figueiro    schedule 25.06.2018
comment
Это очень хороший совет для новых репозиториев (и я поддерживаю его), но он не помогает с существующими репозиториями. - person Ivan; 25.06.2018