Public/镜像统计.ps1
|
<# .SYNOPSIS 查看所有镜像站的历史成功率统计。 .DESCRIPTION 读取本地镜像拉取记录,按评分高低列出所有镜像站的成功次数、失败次数、成功率和最后尝试时间。 .PARAMETER 记录文件路径 镜像统计记录文件的保存路径,默认为 "$env:TEMP\镜像拉取记录.json"。 .EXAMPLE 查看-镜像统计 查看默认记录文件中的镜像统计。 .EXAMPLE 查看-镜像统计 -记录文件路径 "D:\MyData\镜像记录.json" 查看指定记录文件中的镜像统计。 #> function 查看-镜像统计 { [CmdletBinding()] param( [Parameter()] [string]$记录文件路径 = $script:默认记录路径 ) $镜像记录 = 读取-镜像记录 $记录文件路径 if (@($镜像记录.镜像.PSObject.Properties).Count -eq 0) { Write-Host "暂无镜像使用记录。" return } $统计列表 = @() foreach ($属性 in $镜像记录.镜像.PSObject.Properties) { $统计 = 确保-镜像统计结构 $属性.Value $评分 = 计算-镜像评分 $统计 $成功百分比 = [math]::Round($评分 * 100, 1) $统计列表 += [pscustomobject]@{ 镜像站 = $属性.Name 成功次数 = [int]$统计.成功次数 失败次数 = [int]$统计.失败次数 成功率 = "$成功百分比%" 最近耗时毫秒 = $统计.最近耗时毫秒 最后尝试 = $统计.最后尝试时间 } } $统计列表 | Sort-Object -Property { [double]($_.成功率 -replace '%', '') } -Descending | Format-Table -AutoSize } <# .SYNOPSIS 重置所有镜像站的历史统计记录。 .DESCRIPTION 删除本地镜像拉取记录文件,下次运行时将从零开始统计各镜像站的成功率。 .PARAMETER 记录文件路径 镜像统计记录文件的保存路径,默认为 "$env:TEMP\镜像拉取记录.json"。 .EXAMPLE 重置-镜像统计 重置默认记录文件。 #> function 重置-镜像统计 { [CmdletBinding()] param( [Parameter()] [string]$记录文件路径 = $script:默认记录路径 ) if (Test-Path -LiteralPath $记录文件路径) { Remove-Item -LiteralPath $记录文件路径 -Force Write-Host "已删除镜像统计记录:$记录文件路径" } else { Write-Host "镜像统计记录文件不存在,无需重置。" } } |