I wanted to see what all of the ZFS filesystems thought they had set for the property of sharenfs. I could do it on a piece-by-piece basis:
[tdh@wont ~coach]> zfs get sharenfs zoo/home/coach NAME PROPERTY VALUE SOURCE zoo/home/coach sharenfs rw,anon=0 inherited from zoo/home
Or I could get all of the properties from one filesystem:
[tdh@wont ~]> zfs get all zoo/home/tdh NAME PROPERTY VALUE SOURCE zoo/home/tdh type filesystem - zoo/home/tdh creation Mon Mar 20 23:12 2006 - zoo/home/tdh used 15.8M - zoo/home/tdh available 9.98G - zoo/home/tdh referenced 15.8M - zoo/home/tdh compressratio 1.36x - zoo/home/tdh mounted yes - zoo/home/tdh quota none default zoo/home/tdh reservation none default zoo/home/tdh recordsize 128K default zoo/home/tdh mountpoint /export/zfs/tdh inherited from zoo/home zoo/home/tdh sharenfs rw,anon=0 inherited from zoo/home zoo/home/tdh checksum on default zoo/home/tdh compression on inherited from zoo/home zoo/home/tdh atime on default zoo/home/tdh devices on default zoo/home/tdh exec on default zoo/home/tdh setuid on default zoo/home/tdh readonly off default zoo/home/tdh zoned off default zoo/home/tdh snapdir visible default zoo/home/tdh aclmode groupmask default zoo/home/tdh aclinherit secure default
But I couldn't figure out how to say either:
So I decided to use the scripting features in 'zfs list' to do the same thing:
[tdh@wont ~coach]> zfs list -H -o name -t filesystem | xargs zfs get sharenfs NAME PROPERTY VALUE SOURCE zoo sharenfs off default zoo/home sharenfs rw,anon=0 local zoo/home/coach sharenfs rw,anon=0 inherited from zoo/home zoo/home/haynest sharenfs rw,anon=0 inherited from zoo/home zoo/home/kanigix sharenfs rw,anon=0 inherited from zoo/home zoo/home/loghyr sharenfs rw,anon=0 inherited from zoo/home zoo/home/mrx sharenfs rw,anon=0 inherited from zoo/home zoo/home/nfsv2 sharenfs rw,anon=0 inherited from zoo/home zoo/home/nfsv3 sharenfs rw,anon=0 inherited from zoo/home zoo/home/nfsv4 sharenfs rw,anon=0 inherited from zoo/home zoo/home/spud sharenfs rw,anon=0 inherited from zoo/home zoo/home/tdh sharenfs rw,anon=0 inherited from zoo/home zoo/home/thomas sharenfs rw,anon=0 inherited from zoo/home zoo/isos sharenfs off default zoo/x86 sharenfs off default
The power here is the extensibility built on top of the Unix paradigm of small programs linked with pipes. With a lot of other OSes (and some built on top of Unix implementations) this would be a PVR or RFE to the engineering department. $$$ for the company, but an irate customer base.
Of course I think I'm pretty hot, until eshrock points out:
# zfs list -o name,sharenfs NAME SHARENFS zoo off zoo/home rw,anon=0 zoo/home/coach rw,anon=0 zoo/home/haynest rw,anon=0 zoo/home/kanigix rw,anon=0 zoo/home/loghyr rw,anon=0 zoo/home/mrx rw,anon=0 zoo/home/nfsv2 rw,anon=0 zoo/home/nfsv3 rw,anon=0 zoo/home/nfsv4 rw,anon=0 zoo/home/nfsv4@monday - zoo/home/spud rw,anon=0 zoo/home/tdh rw,anon=0 zoo/home/thomas rw,anon=0 zoo/isos off zoo/x86 off