web-dev-qa-db-ja.com

Nexus 3の特定のリポジトリのサイズを取得する

Nexus 3で特定のリポジトリのサイズを取得するにはどうすればよいですか?

たとえば、ArtifactoryはUIを介してリポジトリの「ディスク上のサイズ」を表示します。

Nexusにも同様の機能はありますか?そうでない場合-スクリプトでこの情報を取得するにはどうすればよいですか?

17
Ivan

https://issues.sonatype.org/browse/NEXUS-14837 のgroovyスクリプトnx-blob-repo-space-report.groovyで管理タスクを使用できます。

または、データベースから取得することもできます。

  1. ユーザー所有者のネクサスインストールでネクサスサーバーにログイン(例:ネクサス)

  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| +----+------------+_

ネクサスデータベースの接続手順は次のとおりです 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;
_
15
tmf glzkv

各リポジトリを独自のBlobストアに割り当てます。

enter image description here

5
Thiago Figueiro