在 Oracle® Solaris 11.2 中管理 ZFS 文件系统

退出打印视图

更新时间: 2014 年 12 月
 
 

查询 ZFS 属性

查询属性值的最简单方法是使用 zfs list 命令。有关更多信息,请参见列出基本 ZFS 信息。但是,对于复杂查询和脚本编写,请使用 zfs get 命令以定制格式提供更详细的信息。

可以使用 zfs get 命令检索任何数据集属性。以下示例说明如何在数据集中检索单个属性值:

# zfs get checksum tank/ws
NAME             PROPERTY       VALUE                      SOURCE
tank/ws          checksum       on                         default

第四栏 SOURCE 表示此属性值的来源。下表定义可能的源值。

表 5-3  可能的 SOURCE 值 (zfs get 命令)
Source 值
说明
default
从来不为数据集或其任何祖先显式设置此属性值。使用的是该属性的缺省值。
inherited from dataset-name
该属性值继承自 dataset-name 所指定的父数据集。
local
使用 zfs set 可为此数据集显式设置该属性值。
temporary
该属性值是使用 zfs mount –o 选项设置的,并且仅在挂载期间有效。有关临时挂载点属性的更多信息,请参见使用临时挂载属性
- (none)
此属性为只读。其值由 ZFS 生成。

可以使用特殊关键字 all 检索所有数据集属性值。以下示例使用 all 关键字:

# zfs get all tank/home
NAME       PROPERTY              VALUE                  SOURCE
tank/home  type                  filesystem             -
tank/home  creation              Mon Dec  3 13:10 2012  -
tank/home  used                  291K                   -
tank/home  available             58.7G                  -
tank/home  referenced            291K                   -
tank/home  compressratio         1.00x                  -
tank/home  mounted               yes                    -
tank/home  quota                 none                   default
tank/home  reservation           none                   default
tank/home  recordsize            128K                   default
tank/home  mountpoint            /tank/home             default
tank/home  sharenfs              off                    default
tank/home  checksum              on                     default
tank/home  compression           off                    default
tank/home  atime                 on                     default
tank/home  devices               on                     default
tank/home  exec                  on                     default
tank/home  setuid                on                     default
tank/home  readonly              off                    default
tank/home  zoned                 off                    default
tank/home  snapdir               hidden                 default
tank/home  aclmode               discard                default
tank/home  aclinherit            restricted             default
tank/home  canmount              on                     default
tank/home  shareiscsi            off                    default
tank/home  xattr                 on                     default
tank/home  copies                1                      default
tank/home  version               5                      -
tank/home  utf8only              off                    -
tank/home  normalization         none                   -
tank/home  casesensitivity       mixed                  -
tank/home  vscan                 off                    default
tank/home  nbmand                off                    default
tank/home  sharesmb              off                    default
tank/home  refquota              none                   default
tank/home  refreservation        none                   default
tank/home  primarycache          all                    default
tank/home  secondarycache        all                    default
tank/home  usedbysnapshots       0                      -
tank/home  usedbydataset         291K                   -
tank/home  usedbychildren        0                      -
tank/home  usedbyrefreservation  0                      -
tank/home  logbias               latency                default
tank/home  sync                  standard               default
tank/home  rekeydate             -                      default
tank/home  rstchown              on                     default

zfs get–s 选项用于按照源类型指定要显示的属性。通过此选项可获取一个逗号分隔列表,用于指明所需的源类型。仅会显示具有指定源类型的属性。有效的源类型包括 localdefaultinheritedtemporarynone。以下示例显示了在 tank/ws 上本地设置的所有属性。

# zfs get -s local all tank/ws
NAME     PROPERTY              VALUE                  SOURCE
tank/ws  compression           on                     local

以上任何选项均可与 –r 选项结合使用,以便以递归方式显示指定文件系统的所有子级的指定属性。在以下示例中,以递归方式显示了 tank/home 中所有文件系统的所有临时属性:

# zfs get -r -s temporary all tank/home
NAME             PROPERTY       VALUE                      SOURCE
tank/home          atime          off                      temporary
tank/home/jeff     atime          off                      temporary
tank/home/mark     quota          20G                      temporary

可以在不指定目标文件系统的情况下使用 zfs get 命令查询属性值,这意味着该命令对所有池或文件系统有效。例如:

# zfs get -s local all
tank/home               atime          off                    local
tank/home/jeff          atime          off                    local
tank/home/mark          quota          20G                    local

有关 zfs get 命令的更多信息,请参见 zfs(1M)

查询用于编写脚本的 ZFS 属性

zfs get 命令支持为编写脚本而设计的 –H–o 选项。可以使用 –H 选项省去标题信息并用 Tab 字符替换空格。使用一致的空格可使数据便于解析。可以使用 –o 选项以如下方式定制输出:

  • 字符 name 可以与逗号分隔的属性列表一起使用,如 介绍 ZFS 属性 部分所述。

  • 输出逗号分隔的字面字段 namevaluepropertysource 的列表,后面跟随空格和参数,这就是逗号分隔的属性列表。

以下示例说明如何使用 –zfs get–Ho 选项来检索单个值:

# zfs get -H -o value compression tank/home
on

–p 选项会将数字值报告为精确值。例如,1MB 将报告为 1000000。此选项可按如下方式使用:

# zfs get -H -o value -p used tank/home
182983742

可以结合使用 –r 选项与前述任何选项,以递归方式为所有后代检索请求值。以下示例使用 –H–o–r 选项检索文件系统名称和 export/home 及其后代的 used 属性值,同时省略标题输出:

# zfs get -H -o name,value -r used export/home