2015-11-24 71 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,但不够灵活。