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

如何通过AWS CLI获取EFS中所有文件的存储层级

获取EFS文件存储层级的AWS CLI实操方法

要通过AWS CLI结合工具获取EFS文件的存储层级(Standard、Standard IA等),需按以下步骤操作:

前提条件

  • 已将目标EFS文件系统挂载到EC2实例(或支持NFSv4.1的客户端),挂载命令示例:
    sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-xxxxxxx.efs.us-east-1.amazonaws.com:/ /mnt/efs
    
  • 挂载实例需安装attr包(提供getfattr命令),可通过sudo yum install attr(RHEL/CentOS)或sudo apt install attr(Debian/Ubuntu)安装。

获取单个文件的存储层级

使用getfattr读取文件的EFS扩展属性user.efs.storage_class:

getfattr -n user.efs.storage_class /mnt/efs/path/to/target/file

输出示例:

# file: mnt/efs/path/to/target/file
user.efs.storage_class="STANDARD_IA"

批量获取所有文件的存储层级

结合find命令遍历所有文件,批量读取存储层级:

  1. 基础遍历输出:
    find /mnt/efs -type f -exec getfattr -n user.efs.storage_class {} \;
    
  2. 整洁格式输出(文件名+存储层级):
    find /mnt/efs -type f -printf "%p: " -exec getfattr -n user.efs.storage_class --only-values {} \;
    

结合文件类型分析

如果需要同时获取文件类型和存储层级,可搭配file命令:

find /mnt/efs -type f -exec sh -c 'echo "$(file -b "$1") | $(getfattr -n user.efs.storage_class --only-values "$1") | $1"' _ {} \;

输出示例:

ASCII text | STANDARD | /mnt/efs/docs/readme.txt
JPEG image data, JFIF standard 1.01 | STANDARD_IA | /mnt/efs/photos/holiday.jpg

注意事项

  • 仅当EFS文件系统开启了生命周期管理策略时,文件才会有非Standard的存储层级;未开启策略的EFS中所有文件默认属于STANDARD。
  • AWS CLI没有直接远程读取EFS文件属性的命令,必须通过挂载文件系统后读取本地文件属性的方式实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:07:14