2015-11-24 103 views
2

我想查詢我的存儲數據庫以找出所有存儲庫ids,存儲庫大小和項目名稱,但我不確定哪個表可以獲取存儲庫大小。請任何人都可以幫忙?如何查找存儲庫的大小

+0

我認爲當您點擊「Retrieve size details」鏈接(在回購設置中)時,回購倉庫的大小就會隨時計算。 –

回答

1

由於存儲庫以二進制文件的形式存儲在服務器上,因此您請求的信息在存儲數據庫中不可用。希望您瞭解在存儲庫設置中可用的「存儲庫大小詳細信息」鏈接按鈕,該按鈕將在我們單擊它時計算大小。我認爲你有管理員訪問服務器和數據庫。需要計算Stash中前10個存儲庫的大小,作爲其中一部分,我開發了一個shell腳本。然而,我只是在這裏粘貼癥結,並希望其他人能夠即興創作以滿足他們的需求。

運行這個命令你藏匿在家庫路徑取前10名倉庫藏匿服務器:

du -ksm /stash-home/.../.../repositories/* | sort -n | tail -10 

這會給降序排序前10名最重的資源庫:

1031 /stash-home/.../.../repositories/1732 
646  /stash-home/.../.../repositories/132 
555  /stash-home/.../.../repositories/1221 
449  /stash-home/.../.../repositories/785 
324  /stash-home/.../.../repositories/234 
320  /stash-home/.../.../repositories/354 
292  /stash-home/.../.../repositories/282 
282  /stash-home/.../.../repositories/1328 
237  /stash-home/.../.../repositories/2810 
221  /stash-home/.../.../repositories/263 

在上面的輸出中,第一列表示以MB爲單位的大小。第二列包含存儲庫路徑還包括庫標識如:1732

現在你有了倉庫的ID,在藏匿的數據庫,你可以運行下面的查詢來獲取相關的項目名稱和回購名稱:

select p.id as projectid, p.project_key, p.name projectname, r.id as repoid, 
r.name as reponame from PROJECT p ,REPOSITORY r Where p.ID=r.PROJECT_ID 
and r.id in (1732,132,1221,785,234,354,282,1328,2810,263) 

du命令顯示的大小將使輸出與單擊前端的「存儲庫大小詳細信息」相同。如果將這兩個鏈接到一個shell腳本中以生成每週報告,它將很好地工作。

P.S.還有一個Stash Repo Size Plugin,但不夠靈活。