使用 zfs get 从 属性 获取快照的名称
Get the name of snapshot from property using zfs get
想知道是否可以从任何 属性.
中获取快照的名称
例如,我创建了一个名为 :uuid
的 属性,其值为 c98fdd32-8a76-4bcf-a509-d298291f85f5
是否可以使用 属性 及其值获取此快照的名称?
是的,有可能。
简答:
使用zfs get -Hpr -t snapshot -o name,value :uuid | awk '{if ( == "c98fdd32-8a76-4bcf-a509-d298291f85f5") print }'
长answer/explanation:
您可以查询任何数据集(文件系统、卷或快照)的任何 ZFS 属性:
zfs get :uuid <dataset>
如果你在没有数据集的情况下用-r
递归调用它,你将得到所有有效的数据集:
zfs get -r :uuid
要仅将其缩减为快照类型的数据集,请使用 -t
:
zfs get -r -t snapshot :uuid
那么你只能用-o
显示你想要的列,在这种情况下是名称和值列:
zfs get -r -t snapshot -o name,value :uuid
要进一步处理数据,您需要使用 -H
删除 headers 并使用 -p
将数字显示为精确值:
zfs get -Hpr -t snapshot -o name,value :uuid
这包括所有值,甚至 non-set 个值 (-
),因此您需要进一步过滤输出(例如使用 awk
):
如果您只想要一个特定的快照名称(为每一行打印第一个 column/name,其中第二个 column/value 是特定字符串):
zfs get -Hpr -t snapshot -o name,value :uuid | awk '{if ( == "c98fdd32-8a76-4bcf-a509-d298291f85f5") print }'
如果你想要除空结果之外的所有结果(全部没有-
):
zfs get -Hpr -t snapshot -o name,value :uuid | awk '{if ( != "-") print }'
如果你只想有基本名称,你可以进一步拆分第一列和第二列@
(这是文件系统和快照名称之间的分隔符):
zfs get -Hpr -t snapshot -o name,value :uuid | awk '{if ( != "-") print }' | awk -F"@" '{print }'
想知道是否可以从任何 属性.
中获取快照的名称例如,我创建了一个名为 :uuid
的 属性,其值为 c98fdd32-8a76-4bcf-a509-d298291f85f5
是否可以使用 属性 及其值获取此快照的名称?
是的,有可能。
简答:
使用zfs get -Hpr -t snapshot -o name,value :uuid | awk '{if ( == "c98fdd32-8a76-4bcf-a509-d298291f85f5") print }'
长answer/explanation:
您可以查询任何数据集(文件系统、卷或快照)的任何 ZFS 属性:
zfs get :uuid <dataset>
如果你在没有数据集的情况下用
-r
递归调用它,你将得到所有有效的数据集:zfs get -r :uuid
要仅将其缩减为快照类型的数据集,请使用
-t
:zfs get -r -t snapshot :uuid
那么你只能用
-o
显示你想要的列,在这种情况下是名称和值列:zfs get -r -t snapshot -o name,value :uuid
要进一步处理数据,您需要使用
-H
删除 headers 并使用-p
将数字显示为精确值:zfs get -Hpr -t snapshot -o name,value :uuid
这包括所有值,甚至 non-set 个值 (
-
),因此您需要进一步过滤输出(例如使用awk
):如果您只想要一个特定的快照名称(为每一行打印第一个 column/name,其中第二个 column/value 是特定字符串):
zfs get -Hpr -t snapshot -o name,value :uuid | awk '{if ( == "c98fdd32-8a76-4bcf-a509-d298291f85f5") print }'
如果你想要除空结果之外的所有结果(全部没有
-
):zfs get -Hpr -t snapshot -o name,value :uuid | awk '{if ( != "-") print }'
如果你只想有基本名称,你可以进一步拆分第一列和第二列
@
(这是文件系统和快照名称之间的分隔符):zfs get -Hpr -t snapshot -o name,value :uuid | awk '{if ( != "-") print }' | awk -F"@" '{print }'