プロパティー値のクエリー検索を行うもっとも簡単な方法は、zfs list コマンドを使用することです。詳細については、基本的な ZFS 情報を表示するを参照してください。ただし、複雑なクエリーおよびスクリプトについては、zfs get コマンドを使用して、より詳しい情報をカスタマイズされた形式で提供してください。
zfs get コマンドを使用して、任意のデータセットプロパティーを取得できます。次の例は、データセット上の 1 つのプロパティー値を取得する方法を示しています。
# zfs get checksum tank/ws NAME PROPERTY VALUE SOURCE tank/ws checksum on default
4 番目の列 SOURCE は、このプロパティー値の起点を示します。次の表は、表示される可能性のあるソース値を定義したものです。
|
特殊キーワード 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 により、表示するプロパティーをソースタイプによって指定できます。このオプションには、必要なソースの種類をコンマ区切りのリストとして指定します。指定したソースの種類のプロパティーだけが表示されます。有効なソースの種類は、local、default、inherited、temporary、および none です。次の例は、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 get コマンドでは、スクリプトで使用できるように設計された –H および – o オプションを利用できます。–H オプションを使用すると、ヘッダー情報を省略し、空白をタブ文字で置き換えることができます。空白が揃うことで、データが見やすくなります。–o オプションを使用して、次の方法で出力をカスタマイズできます。
リテラル name は、ZFS のプロパティーの概要セクションで定義したプロパティーのコンマ区切りリストと組み合わせて使用できます。
出力対象となるリテラルフィールド name、value、property、および source のコンマ区切りリストのあとに、空白 1 つと引数 1 つ。この引数は、プロパティーのコンマ区切りリストとなります。
次の例では、–zfs get の –H および o オプションを使用して、1 つの値を取得する方法を示しています。
# zfs get -H -o value compression tank/home on
–p オプションを指定すると、数値が正確な値として出力されます。たとえば、1M バイトは 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