プロパティー値のクエリー検索を行うもっとも簡単な方法は、zfs list コマンドを使用することです。詳細については、「基本的な ZFS 情報を表示する」を参照してください。ただし、複雑なクエリーを使用する場合およびスクリプトで使用する場合は、より詳細な情報をカスタマイズした書式で渡すために zfs get コマンドを使用します。
zfs get コマンドを使用して、任意のデータセットプロパティーを取得できます。次の例は、データセット上の 1 つのプロパティー値を取得する方法を示しています。
# zfs get checksum tank/ws NAME PROPERTY VALUE SOURCE tank/ws checksum on default |
4 番目の列 SOURCE は、このプロパティー値の起点を示します。次の表は、表示される可能性のあるソース値を定義したものです。
表 6–3 出力される可能性のある SOURCE 値 (zfs get コマンド)
ソース値 |
説明 |
---|---|
default |
このプロパティー値は、このデータセットまたはその祖先 (存在する場合) で明示的に設定されたことが一度もありません。このプロパティーのデフォルト値が使用されています。 |
inherited from dataset-name |
このプロパティー値は、dataset-name に指定されている親データセットから継承されます。 |
local |
このプロパティー値は、zfs set を使って、このデータセットに明示的に設定されました。 |
temporary |
このプロパティー値は、zfs mount - o オプションを使って設定され、マウントの有効期間だけ有効です。一時的なマウントプロパティーの詳細については、「一時的なマウントプロパティーを使用する」を参照してください。 |
- (なし) |
このプロパティーは読み取り専用です。値は ZFS によって生成されます。 |
特殊キーワード all を使って、すべてのデータセットプロパティー値を取得できます。all キーワードの使用例を次に示します。
# zfs get all tank/home NAME PROPERTY VALUE SOURCE tank/home type filesystem - tank/home creation Tue Jun 29 11:44 2010 - tank/home used 21K - tank/home available 66.9G - tank/home referenced 21K - 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 groupmask 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 4 - tank/home utf8only off - tank/home normalization none - tank/home casesensitivity sensitive - 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 21K - tank/home usedbychildren 0 - tank/home usedbyrefreservation 0 - tank/home logbias latency default |
Oracle Solaris 10 リリースでは Oracle Solaris SMB サービスがサポートされていないため、Oracle Solaris 10 リリースの casesensitivity、nbmand、normalization、sharesmb、utf8only、および vscan プロパティーは完全には機能しません。
zfs get に -s オプションを使用すると、表示するプロパティーをソースの種類ごとに指定できます。このオプションには、必要なソースの種類をコンマ区切りのリストとして指定します。指定したソースの種類のプロパティーだけが表示されます。有効なソースの種類は、local、default、inherited、temporary、および none です。次の例では、pool 上にローカルに設定されているすべてのプロパティーを表示しています。
# zfs get -s local all pool NAME PROPERTY VALUE SOURCE pool compression on local |
前述のどのオプションの場合にも、-r オプションを使用して、指定したデータセットのすべての子に設定されている特定のプロパティーを再帰的に表示することができます。次の例では、tank に含まれるすべてのデータセットに設定されている、すべての一時的なプロパティーが再帰的に表示されます。
# zfs get -r -s temporary all tank NAME PROPERTY VALUE SOURCE tank/home atime off temporary tank/home/bonwick atime off temporary tank/home/marks atime off temporary |
zfs get コマンドでは、ターゲットのファイルシステムを指定せずにプロパティー値のクエリーを行うことが可能です。これは、すべてのプールやファイルシステムがコマンドの処理対象となることを意味します。次に例を示します。
# zfs get -s local all tank/home atime off local tank/home/bonwick atime off local tank/home/marks quota 50G 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 export/home 5.57G export/home/marks 1.43G export/home/maybee 2.15G |