[Azure]使用Powershell统计经典存储账号下容器中Blob的使用情况
来源:互联网 发布:linux中vi显示行号 编辑:程序博客网 时间:2024/06/04 17:57
脚本比较简单,不做过多介绍,唯一需要注意的是考虑到存储账号下文件数量过多的情况(例如十万或者百万级的文件数),为了避免单次Query过多文件数导致卡死或者超时,因此脚本中使用了一个$tokenStop变量限制每次Query Blob的上线(脚本中定义的是5000一次,如果觉得有需要可以改成10000,不要太多)。
脚本如下:
param( [Parameter(Mandatory = $true)] [string]$SubscriptionName, [Parameter(Mandatory = $true)] [string]$StorageAccountName)Function SummarizeContainer($context, $containerName){ Write-Host ("Calculating container {0}" -f $containerName) -ForegroundColor Yellow; $totalCount = 0; $totalSize = 0; $token = $null; $tokenStep = 5000; do { $blobs = Get-AzureStorageBlob -Container $containerName -Context $context -ContinuationToken $token -MaxCount $tokenStep; if($blobs.Length -le 0) { break; } foreach($blob in $blobs) { $totalSize += $blob.Length; } $totalCount += $blobs.Count; Write-Host ("{0} blobs calculated" -f $totalCount) -ForegroundColor Cyan; $token = $blobs[$blobs.Count -1].ContinuationToken; } while($token -ne $null) $totalSizeStr = ""; if (($totalSize/1024/1024/1024) -gt 1) { $totalSizeStr = "{0:N}GB" -f ($totalSize/1024/1024/1024); } elseif (($totalSize/1024/1024) -gt 1) { $totalSizeStr = "{0:N}MB" -f ($totalSize/1024/1024); } elseif (($totalSize/1024) -gt 1) { $totalSizeStr = "{0:N}KB" -f ($totalSize/1024); } else { $totalSizeStr = "{0:N}Byte" -f $totalSize; } return [PSCustomObject]@{ContainerName = $containerName BlobCount = $totalCount TotalSize = $totalSizeStr};}[void](Select-AzureSubscription -SubscriptionName $SubscriptionName);$storage = Get-AzureStorageAccount -StorageAccountName $StorageAccountName;$context = $storage.Context;Write-Host "Collecting containers" -ForegroundColor Yellow;$containers = Get-AzureStorageContainer -Context $context;$containerSummary = @();foreach ($container in $containers){ $containerSummary += (SummarizeContainer $context $container.Name);}$containerSummary | Select ContainerName, BlobCount, TotalSize;
测试结果:
阅读全文
1 0
- [Azure]使用Powershell统计经典存储账号下容器中Blob的使用情况
- [Azure]使用Powershell统计ARM存储账号下容器中Blob的使用情况
- [Azure]使用Azure Powershell输出ARM模式下某个账号中所有订阅下的虚拟网络拓扑
- [Azure]使用Azure Powershell输出ASM模式下某个账号中所有订阅下的虚拟网络拓扑
- [Azure] 使用Azure Powershell脚本查看账号下所有订阅中的云服务公网IP地址绑定情况
- [Azure]使用Azure Powershell查看ARM模式下Azure存储中的vhd文件对应的虚拟机
- [Azure]使用Azure Powershell查看ASM模式下Azure存储中的vhd文件对应的虚拟机
- [Azure]使用Powershell输出经典模式下全部云服务的VIP
- [Azure]ARM模式下使用Powershell找出订阅中没有被使用的vhd
- 通过 PHP 使用China Azure Blob 存储
- [Azure]使用Azure Powershell清理ASM模式下未使用的Disk和vhd
- [Azure]使用Powershell获取Azure ARM模式订阅下的一些常用信息
- [Azure]使用Powershell输出Azure订阅下所有虚拟机的ACL信息
- [Azure]ARM中使用Azure Powershell批量规划虚拟网络
- [Azure]使用Powershell获取ASM和ARM存储的实际使用量
- 微软云Blob存储账号使用——Java使用
- 1. 使用azure powershell 管理azure redis
- 使用Azure powershell 创建Azure虚拟机
- centos快速安装mysql
- C++ Qt学习教程1-50
- JAVA SkipList 跳表 的原理和使用例子
- Android 屏幕适配攻略(五)动态创建控件并设置控件的大小
- jstl标签库易犯错误
- [Azure]使用Powershell统计经典存储账号下容器中Blob的使用情况
- 头文件的包含以及命名空间的引入尽量写在cpp文件中
- tomcat启动startup.bat一闪而过
- ROC曲线与AUC值
- Oracle,MySQL,sqlserver三大数据库如何获取系统当前时间
- C#---DataGridView 控件
- 全面理解Java泛型
- 表格转json
- 【国象AI】评估函数(一)