You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure CLI或Bash脚本获取Azure存储账户的容量大小

Azure存储账户占用容量查询方案(Azure CLI/Bash实现)

你需要先安装Azure CLI,且已通过az login完成身份验证,持有对应存储账户的监控数据读取权限。

1. 单存储账户直接查询CLI命令

直接调用Azure监控指标接口的命令如下,把尖括号里的参数替换为你自己的实际值即可:

az monitor metrics list \
  --resource /subscriptions/<你的订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.Storage/storageAccounts/<存储账户名> \
  --metric "UsedCapacity" \
  --aggregation "Average" \
  --offset 1h \
  --query "value[0].timeseries[0].data[0].average"
  • 返回结果的单位是字节,你可以自行除以1024³转换为GB单位。
  • 其中--offset 1h代表查询最近1小时的指标,存储容量指标存在约15分钟的上报延迟,查询时间范围过近可能返回空值。

2. 开箱即用的Bash脚本(支持自动单位转换+批量查询)

下面的脚本可以直接运行,会自动列出你当前订阅下所有存储账户的已用容量,自动转换为易读的MB/GB/TB单位:

#!/bin/bash
# 先验证Azure登录状态
az account show > /dev/null 2>&1
if [ $? -ne 0 ]; then
  echo "请先运行az login登录Azure账户"
  exit 1
fi

# 获取所有存储账户列表
storage_accounts=$(az storage account list --query "[].{id:id, name:name}" -o tsv)

echo -e "存储账户名称\t已用容量"
echo "----------------------------------------"

while read -r id name; do
  # 查询已用容量
  used_bytes=$(az monitor metrics list \
    --resource "$id" \
    --metric "UsedCapacity" \
    --aggregation Average \
    --offset 1h \
    --query "value[0].timeseries[0].data[0].average" -o tsv)
  
  # 空值处理
  if [ -z "$used_bytes" ] || [ "$used_bytes" = "None" ]; then
    used_human="未获取到数据"
  else
    # 自动单位转换
    if (( used_bytes < 1024**2 )); then
      used_human=$(printf "%.2f KB" $(echo "$used_bytes / 1024" | bc -l))
    elif (( used_bytes < 1024**3 )); then
      used_human=$(printf "%.2f MB" $(echo "$used_bytes / 1024^2" | bc -l))
    elif (( used_bytes < 1024**4 )); then
      used_human=$(printf "%.2f GB" $(echo "$used_bytes / 1024^3" | bc -l))
    else
      used_human=$(printf "%.2f TB" $(echo "$used_bytes / 1024^4" | bc -l))
    fi
  fi

  echo -e "$name\t$used_human"
done <<< "$storage_accounts"
  • 脚本依赖bc工具做数值计算,大部分Linux发行版默认预装,缺失的话可以用sudo apt install bc(Debian/Ubuntu)或sudo yum install bc(CentOS/RHEL)安装。
  • 如果你只需要查询单个存储账户,直接把获取存储账户列表的部分替换成你指定的存储账户资源ID和名称即可。

注意事项

  • 存储账户的UsedCapacity指标是所有Blob、File、Queue、Table服务的总占用容量,如果你需要查询单个服务的容量,可以把--metric参数替换为对应服务的指标:Blob服务用BlobCapacity、文件服务用FileCapacity、队列服务用QueueCapacity、表服务用TableCapacity。
  • 指标数据最多保留93天,你可以通过--start-time和--end-time参数指定更长的时间范围查询历史容量。

内容的提问来源于stack exchange,提问作者Sashin Sahasra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:36:02