2017-05-02 7 views
0

Nexus Repository Manager OSS 2.14.3에서 3.2.1로 업그레이드 한 후 다음과 같은 유물의 수를 세는 방법을 알 수 없습니다. 각 저장소는 데이터 업그레이드를 확인하는 과정에서 특정 BLOB 저장소 아래에 저장됩니다. 인터페이스에서 수동으로 계산하는 것은 생산에 10,000 개 이상의 인공물이 있으므로 실용적이지 않습니다. 2.X에서Nexus 저장소 관리자 OSS 3.2.1에서 유물 수를 계산하는 방법

계산 유물은

[[email protected] local]# ll sonatype-work/nexus3/blobs/releases/content/ | wc -l 
14 
[[email protected] local]# ll sonatype-work/nexus3/blobs/releases/content/   
total 52 
drwxr-xr-x 2 root root 4096 May 2 06:42 tmp 
drwxr-xr-x 3 root root 4096 May 2 06:42 vol-12 
drwxr-xr-x 3 root root 4096 May 2 06:42 vol-13 
drwxr-xr-x 4 root root 4096 May 2 06:42 vol-16 
drwxr-xr-x 4 root root 4096 May 2 06:42 vol-22 
drwxr-xr-x 3 root root 4096 May 2 06:42 vol-24 
drwxr-xr-x 3 root root 4096 May 2 06:42 vol-31 
drwxr-xr-x 4 root root 4096 May 2 06:42 vol-34 
drwxr-xr-x 3 root root 4096 May 2 06:42 vol-36 
drwxr-xr-x 3 root root 4096 May 2 06:42 vol-37 
drwxr-xr-x 3 root root 4096 May 2 06:42 vol-41 
drwxr-xr-x 4 root root 4096 May 2 06:42 vol-42 
drwxr-xr-x 3 root root 4096 May 2 06:42 vol-43 
[[email protected] local]# 

왜 (2.X에서 같은 저장소 내용을 업그레이드 한 후) 3.X에서

[[email protected] local]# ll sonatype-work/nexus/storage/releases/sample/1/1/1-1*zip   
-rw-r--r-- 1 root root 152818 May 2 06:38 sonatype-work/nexus/storage/releases/sample/1/1/1-1-1.zip 
-rw-r--r-- 1 root root 145119 May 2 06:38 sonatype-work/nexus/storage/releases/sample/1/1/1-1-2.zip 
-rw-r--r-- 1 root root 1152 May 2 06:38 sonatype-work/nexus/storage/releases/sample/1/1/1-1.zip 
[[email protected] local]# ll sonatype-work/nexus/storage/releases/sample/1/1/1-1*zip | wc -l 
3 
[[email protected] local]# 

계산 인공물 (총 3 공예품을 포함합니다) 나중에 으로 표시됩니다. 나는 3.x부터 인공물이 파일 대신 BLOB로 저장된다는 것을 이해합니다.

터미널을 사용하여 3.x에서 각 BLOB 저장소 아래에 저장된 인공물 수를 계산할 수있는 다른 방법이 있습니까?

답변

0

repositroy의 애셋 및 구성 요소 개수를 세는 그루비 스크립트를 발견 한 경우 Nexus 3.x UI에서 Execute Script task을 통해이 스크립트를 실행할 수 있습니다.

import org.sonatype.nexus.repository.Repository 
import org.sonatype.nexus.repository.storage.Query 
import org.sonatype.nexus.repository.storage.StorageFacet 

import groovy.json.JsonOutput 

def result = [:] 

def totalComponents = 0 
def totalAssets = 0 

repository.repositoryManager.browse().each { Repository repo -> 
    def tx = repo.facet(StorageFacet).txSupplier().get() 
    tx.begin() 
    def components = 
    tx.countComponents(Query.builder().where('1').eq(1).build(), [repo]) 
    def assets = tx.countAssets(Query.builder().where('1').eq(1).build(), 
          [repo]) 
    tx.commit() 
    totalComponents += components 
    totalAssets += assets 
    result[repo.name] = [components: components, assets: assets] 
} 

result["_totals"] = [components : totalComponents, assets : totalAssets] 

def json = JsonOutput.toJson(result) 
log.info json 
return json