我的teamcity服务器磁盘空间不足。主要增长的文件夹是“邮件”文件夹,我想知道如何定义清除策略以从邮件文件夹中删除旧日志。
目前,我的清理规则如下所示:
History more than 15 days older than the last build and older than the 50th successful build
Artifacts more than 2 days older than the last build and older than the 10th successful build; artifact patterns: +:\\**\\*
Other items are kept forever
Do not prevent dependency artifacts cleanup
可能离最有效的解决方案还很远,但这是我的Powershell脚本,它遍历Message文件夹并删除所有没有相应消息( .msg5)的索引(.i1)文件。这会花费一些时间,但是如果您将其安排在TC的周日工作中,则不必担心再次流失Message文件夹的情况。针对它使用TeamCity。
[CmdletBinding()]
param (
[Parameter()]
[string]$messageFolder = "G:\TeamCity\Data\system\messages"
)
function HasNoMessage {
param([System.IO.FileInfo]$indexFile)
foreach ($message in $messages)
{
if ($indexFile.Name.Contains($message.name))
{
return $false
}
}
return $true
}
$folders = Get-ChildItem $messageFolder -Recurse | ?{ $_.PSIsContainer }
$count = 0
$totalSize = 0
$preserved = 0
foreach ($folder in $folders)
{
$table = Get-ChildItem $folder.FullName -include *.i1 -recurse
$messages = Get-ChildItem $folder.FullName -include *.msg5 -recurse
foreach ($index in $table)
{
if (HasNoMessage($index))
{
$count++
$totalSize += $index.Length
remove-item $index.FullName
}
else {$preserved++}
}
}
Write-Output("Finished : total files removed : ", $count)
Write-Output("Total size cleaned in MegaBytes : ", ($totalSize / 1MB))
Write-Output("Preserved files : ", $preserved)
更新:新的TeamCity版本9.x已经解决了这个问题,因此我强烈建议迁移
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句