
From HowStuffWorks.com
Ninjas. They move silently through the night, hunting their prey and striking with a swift ferocity before darting out, unseen and without a trace. Highly skilled and trained, they are efficient and accurate. And yes, I know they are also kind of assholes…
With this blog entry, I hope to arm you, clustered Data ONTAP CLI lovers, with the skills necessary to become CLI Ninjas.
If you attended Insight or have access to the slides from Insight, GV Govindasamy did an excellent session (CR-2-2177) on much of what is covered below. I even borrowed some of his graphics/content :). Follow him on Twitter. Bug him to tweet more.
What is this clustered Data ONTAP you speak of?
Clustered Data ONTAP is NetApp’s scale-out storage operating system.
You can have up to 24 nodes in a NAS cluster, 8 in a SAN cluster. Despite having so many entry points into a cluster, the operating system allows you to use a single point of entry to manage the entire thing.
With Data ONTAP 8.3, there is a management GUI called OnCommand System Manager that is loaded on-box, which means you can access it any time, any where (well, provided you can access that network), with a simple web browser.
But what if you hate GUIs? What if you prefer the cold, dark screen of a PuTTY terminal as you comb your neck beard, drink your Tab cola and listen to your Steely Dan 8-tracks?
There’s good news!
The good news is that clustered Data ONTAP’s CLI is pretty powerful and easy to use.
If you’ve ever used Cisco IOS, you are familiar with the concept of tab completion. If you aren’t familiar, you basically can use the TAB key to help give you hints on what comes next.

It all comes full circle…
Shortcuts!
Additionally, like Cisco IOS, you can use shortcuts for commands. So rather than typing out “volume,” you can use “vol.” Just look out for command ambiguity, where a command with the same few first letters as another command won’t work with a shortcut.
cluster1::*> v Error: Ambiguous command. Possible matches include: volume vserver
Another way shortcuts work is based on how the CLI in clustered Data ONTAP is architected. Every command is considered a “directory” and as you drill down the command tree, you get deeper and deeper into the tree.
For example:
cluster::> vserver services name-services dns
OR
cluster::> dns
Directories!
Commands live in directories in clustered Data ONTAP. As such, you can “cd” into these directories by typing a command. With our DNS command example…
cluster::> dns cluster::vserver services name-services dns>
We dropped down two directory levels! But how do I get back up… Up perhaps?
cluster::vserver services name-services dns> up cluster::vserver services name-services>
What if I want to go all the way to the top?
cluster::vserver services name-services dns> top cluster::>
Well, that was easy… what else can we do?
Stuck on a command?
If tab completion isn’t enough for you, or if you want to see all command options, use the ?:
cluster::> vserver ? active-directory> Manage Active Directory add-aggregates Add aggregates to the Vserver add-protocols Add protocols to the Vserver audit> Manage auditing of protocol requests that the Vserver services check> The check directory cifs> Manage the CIFS configuration of a Vserver context Set Vserver context create Create a Vserver dashboard> The dashboard directory data-policy> Manage data policy delete Delete a Vserver export-policy> Manage export policies and rules fcp> Manage the FCP service on a Vserver fpolicy> Manage FPolicy group-mapping> The group-mapping directory iscsi> Manage the iSCSI services on a Vserver locks> Manage Client Locks modify Modify a Vserver name-mapping> The name-mapping directory nfs> Manage the NFS configuration of a Vserver peer> Create and manage Vserver peer relationships remove-aggregates Remove aggregates from the Vserver remove-protocols Remove protocols from the Vserver rename Rename a Vserver security> Manage ontap security services> The services directory show Display Vservers show-protocols Show protocols for Vserver smtape> The smtape directory start Start a Vserver stop Stop a Vserver vscan> Manage Vscan
Want to know what the command does/is or want to see examples? Use the man command. It will open a “window” similar to vi (ok, a LOT like vi) that allows you to scroll using the space bar, arrow keys and search using the / operand.
cluster::> man volume create volume create Data ONTAP 8.3 volume create NAME volume create -- Create a new volume AVAILABILITY This command is available to cluster and Vserver administrators at the admin privilege level. DESCRIPTION The volume create command creates a volume on a specified Vserver and storage aggregate. You can optionally specify the following attributes for the new volume:
Want to see more detailed output from a command?
When you type a command like “volume show” you might see this:
cluster::> volume show Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- NAS mixed aggr1_node1 online RW 20MB 18.86MB 5% NAS ntfs aggr1_node1 online RW 20MB 18.86MB 5% NAS unix aggr1_node1 online RW 20MB 18.87MB 5% NAS unix2 aggr1_node1 online RW 20MB 18.88MB 5% NAS vsroot aggr1_node1 online RW 20MB 18.84MB 5% TRUST ntfs aggr1_node2 online RW 20MB 18.82MB 5% TRUST unix aggr1_node1 online RW 20MB 18.88MB 5% TRUST vsroot aggr1_node1 online RW 20MB 18.78MB 6% parisi-fs-01 vol0 aggr0_root_node1 online RW 2.86GB 560.2MB 80% parisi-fs-02 vol0 aggr0_root_node2 online RW 2.86GB 650.1MB 77% 10 entries were displayed.
What if you want more? Use -instance!
cluster::> volume show -vserver NAS -volume unix -instance Vserver Name: NAS Volume Name: unix Aggregate Name: aggr1_node1 Volume Size: 20MB Volume Data Set ID: 1036 Volume Master Data Set ID: 2147484684 Volume State: online Volume Type: RW Volume Style: flex Is Cluster-Mode Volume: true Is Constituent Volume: false Export Policy: allow_all User ID: 0 Group ID: 0 Security Style: unix UNIX Permissions: ---rwxrwxrwx Junction Path: /unix Junction Path Source: RW_volume Junction Active: true Junction Parent Volume: vsroot Comment: Available Size: 18.87MB Filesystem Size: 20MB Total User-Visible Size: 19MB Used Size: 132KB Used Percentage: 5% Volume Nearly Full Threshold Percent: 95% Volume Full Threshold Percent: 98% Maximum Autosize (for flexvols only): 24MB (DEPRECATED)-Autosize Increment (for flexvols only): 1MB Minimum Autosize: 20MB Autosize Grow Threshold Percentage: 85% Autosize Shrink Threshold Percentage: 50% Autosize Mode: off Autosize Enabled (for flexvols only): false Total Files (for user-visible data): 566 Files Used (for user-visible data): 100 Space Guarantee Style: volume Space Guarantee in Effect: true Snapshot Directory Access Enabled: false Space Reserved for Snapshot Copies: 5% Snapshot Reserve Used: 71% Snapshot Policy: default Creation Time: Tue Aug 26 14:13:19 2014 Language: C.UTF-8 Clone Volume: false Node name: parisi-fs-01 NVFAIL Option: off Volume's NVFAIL State: false Force NVFAIL on MetroCluster Switchover: off Is File System Size Fixed: false Extent Option: off Reserved Space for Overwrites: 0B Fractional Reserve: 100% Primary Space Management Strategy: volume_grow Read Reallocation Option: off Inconsistency in the File System: false Is Volume Quiesced (On-Disk): false Is Volume Quiesced (In-Memory): false Volume Contains Shared or Compressed Data: false Space Saved by Storage Efficiency: 0B Percentage Saved by Storage Efficiency: 0% Space Saved by Deduplication: 0B Percentage Saved by Deduplication: 0% Space Shared by Deduplication: 0B Space Saved by Compression: 0B Percentage Space Saved by Compression: 0% Volume Size Used by Snapshot Copies: 728KB Block Type: 64-bit Is Volume Moving: false Flash Pool Caching Eligibility: read-write Flash Pool Write Caching Ineligibility Reason: - Managed By Storage Service: - Create Namespace Mirror Constituents For SnapDiff Use: - Constituent Volume Role: - QoS Policy Group Name: - Caching Policy Name: - Is Volume Move in Cutover Phase: false Number of Snapshot Copies in the Volume: 10 VBN_BAD may be present in the active filesystem: false Is Volume on a hybrid aggregate: false Total Physical Used Size: 860KB Physical Used Percentage: 4%
Information… overload…
Ok, so -instance is too much. What if you want to know specifics about a volume that aren’t found in volume show, but you don’t want all the noise? Use -fields to filter!
For instance, what if you only care about what space is available and used?
cluster::> volume show -vserver NAS -volume unix -fields used,available,percent-used vserver volume available used percent-used ------- ------ --------- ----- ------------ NAS unix 18.87MB 132KB 5%
Awesome! Now, how do I *exclude* things? What if I want to see all disks in my system that are *not* spares? Use bang(!):
cluster::> disk show -state !spare Usable Disk Container Container Disk Size Shelf Bay Type Type Name Owner ---------------- ---------- ----- --- ------- ----------- --------- -------- VMw-1.1 3.55GB - 0 VMDISK aggregate aggr0_root_node1 parisi-fs-01 VMw-1.2 3.55GB - 1 VMDISK aggregate aggr0_root_node1 parisi-fs-01 VMw-1.3 3.55GB - 2 VMDISK aggregate aggr0_root_node1 parisi-fs-01 VMw-1.4 82.75MB - 3 VMDISK aggregate aggr1_node1 parisi-fs-01 VMw-1.5 82.75MB - 4 VMDISK aggregate aggr1_node1 parisi-fs-01 VMw-1.6 82.75MB - 5 VMDISK aggregate aggr1_node1 parisi-fs-01 VMw-1.7 82.75MB - 6 VMDISK aggregate aggr1_node1 parisi-fs-01 VMw-1.8 82.75MB - 8 VMDISK aggregate aggr1_node1 parisi-fs-01 VMw-1.15 82.75MB - 0 VMDISK aggregate aggr1_node1 parisi-fs-01 VMw-1.16 82.75MB - 1 VMDISK aggregate aggr1_node1 parisi-fs-01 Press to page down, for next line, or 'q' to quit...
That’s a lot of output. And I know I have more than 16 disks…
Sick of having to hit the space bar to see more output from a command?
When a command exceeds the default of 24 lines (or rows), the system will ask you to hit the space bar to continue. This is done because, in a 24 node cluster, you can end up with a LOT of objects. Thousands of volumes, potentially.
If you truly want to see them all, use the rows command to set to 0:
cluster::> rows 0
Or, if you’d rather, set the rows to a larger number:
cluster::> rows 50
Tired of typing the same command over and over and over…?
Built in to the clustered Data ONTAP CLI is the ability to use !, history and redo commands that Linux admins know and love. This is great for repetitive tasks, or even for commands that get super long.
cluster1::> history 1 rows 2 rows 0 3 rows 24 4 vol show 5 vserver 6 up 7 vserver 8 .. 9 man job 10 man rows 11 man top 12 vserver 13 top 14 man man 15 man redo 16 history 17 storage 18 .. 19 history
To run a specific command you ran already (such as #4, vol show), use one of the following:
cluster::> redo 4 cluster::> !4
Wildcards!
Clustered Data ONTAP CLI also supports the use of wildcards with most commands. This allows you to show a filtered set of objects, based on name. For example, if you have multiple volumes with “unix” in the name:
cluster::> vol show -volume *unix* Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- NAS unix aggr1_node1 online RW 20MB 18.87MB 5% NAS unix2 aggr1_node1 online RW 20MB 18.88MB 5% TRUST unix aggr1_node1 online RW 20MB 18.88MB 5% 3 entries were displayed.
You could combine wildcards with excludes as well.
cluster::> vol show -volume *unix*,!unix2 Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- NAS unix aggr1_node1 online RW 20MB 18.87MB 5% TRUST unix aggr1_node1 online RW 20MB 18.88MB 5% 2 entries were displayed.
Either Or
In addition to excluding using !, you can also use | to include multiple instances of a field. This really comes in handy when trying to look at statistics on a cluster.
Without filters, it becomes a minefield of text:
cluster::*> statistics show-periodic -interval 2 -iterations 0 -summary true -object nfsv3 -instance NAS cluster: nfsv3.NAS: 2/13/2015 15:59:46 access commit create fsinfo fsstat getattr link lookup mkdir mknod nfsv3 nfsv3 nfsv3 nfsv3 nfsv3 null pathconf read read_symlink read read read read readdir readdir readdirplus readdirplus remove rename rmdir setattr symlink write avg access access access access avg commit commit commit commit avg create create create create avg fsinfo fsinfo fsinfo fsinfo avg fsstat fsstat fsstat fsstat avg getattr getattr getattr getattr instance instance avg link link link link avg lookup lookup lookup lookup avg mkdir mkdir mkdir mkdir avg mknod mknod mknod mknod dnfs nfsv3 read read nfsv3 write write avg null null null null avg pathconf pathconf pathconf pathconf raidprop avg read read read avg symlink symlink symlink symlink read avg readdir readdir postop readdir readdir avg readdirplus readdirplus postop readdirplus readdirplus avg remove remove remove remove avg rename rename rename rename avg rmdir rmdir rmdir rmdir avg setattr setattr setattr setattr avg symlink symlink symlink symlink avg write write write write Complete Number of latency error percent success total latency error percent success total cpu_id cpu_name latency error percent success total latency error percent success total latency error percent success total latency error percent success total name uuid latency error percent success total latency error percent success total latency error percent success total latency error percent success total ops ops ops throughput throughput ops throughput latency error percent success total latency error percent success total error latency error percent success latency error percent success total total latency error percent error success total latency error percent error success total latency error percent success total latency error percent success total latency error percent success total latency error percent success total latency error percent success total latency error percent success total Aggregation Constituents -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- -------- ---------- ---------- -------- ---------- -------- -------- ------- -------- -------- -------- -------- -------- -------- -------- -------- -------- -------- ------- -------- ------------ -------- ------- -------- -------- -------- -------- -------- ------- -------- -------- -------- ----------- ----------- ----------- ----------- ----------- ----------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- -------- -------- ------- -------- -------- ----------- ------------ 0us 0 0% 0 0 0us 0 0% 0 0 Multiple_Values Multiple_Values 0us 0 0% 0 0 0us 0 0% 0 0 0us 0 0% 0 0 0us 0 0% 0 0 NAS 5 0us 0 0% 0 0 0us 0 0% 0 0 0us 0 0% 0 0 0us 0 0% 0 0 0 0 0 0 0 0 0 0us 0 0% 0 0 0us 0 0% 0 0 0 0us 0 0% 0 0us 0 0% 0 0 0 0us 0 0% 0 0 0 0us 0 0% 0 0 0 0us 0 0% 0 0 0us 0 0% 0 0 0us 0 0% 0 0 0us 0 0% 0 0 0us 0 0% 0 0 0us 0 0% 0 0 Yes 4
Yikes!
If you use | to include only the stats you want:
cluster::*> statistics show-periodic -interval 2 -iterations 0 -summary true -object nfsv3 -instance NAS -counter nfsv3_read_ops|nfsv3_throughput|nfsv3_write_ops cluster: nfsv3.NAS: 2/13/2015 16:02:25 nfsv3 nfsv3 read nfsv3 write Complete Number of ops throughput ops Aggregation Constituents -------- ---------- -------- ----------- ------------ 0 0 0 Yes 4 0 0 0 Yes 4 cluster: nfsv3.NAS: 2/13/2015 16:02:29 nfsv3 nfsv3 read nfsv3 write Complete Number of ops throughput ops Aggregation Constituents -------- ---------- -------- ----------- ------------ Minimums: 0 0 0 - - Averages for 2 samples: 0 0 0 - - Maximums: 0 0 0 - -
Now that’s nice and readable…
If
(Thanks to Doug Moore, TME for Multi-tenancy at NetApp for assistance with this portion)
In the clustered Data ONTAP CLI, there is also a way to use “if” statements by way of the curly bracket thingies.
{these!}
One use case for them could be during upgrades. Each node has 2 images that can be used to store ONTAP.
cluster::> system image show Is Is Install Node Image Default Current Version Date -------- ------- ------- ------- ------------------------- ------------------- node1 image1 true true 8.2.3 8/27/2014 15:20:52 image2 false false 8.2.2 10/15/2014 12:39:58
When you update an image (upgrade), the current image will remain the default image until you change it. That enables the system to boot on the new image when you reboot. If you have 24 nodes and each node has a different image that is the default image, trying to set the default image on each node can become tiresome. However, with the use of an “if” statement in our command, we can set every node’s default image to the image we just upgraded to. The command below will use all instances of “iscurrent=false” and change them to “isdefault=true.”
cluster::> system image modify {-iscurrent false} -isdefault true
If you noticed in the “system image show” command, my default image is image1. When I run the command with the “if” statement, it changes my default image to image2.
cluster::> system image modify {-iscurrent false} -isdefault true After a clean shutdown, image2 will be set as the default boot image on node node1. 1 entry was modified.
Now image2 is the default image:
cluster::> system image show Is Is Install Node Image Default Current Version Date -------- ------- ------- ------- ------------------------- ------------------- node1 image1 false true 8.2.3 8/27/2014 15:20:52 image2 true false 8.2.2 10/15/2014 12:39:58
Another use case for “if” is modifying snapshot policies. You can run a command to query for all instances of a policy that is enabled and tell the system to disable it.
cluster::> volume snapshot policy modify {-enabled true} -enabled false 2 entries were modified. cluster::> volume snapshot policy show -enabled true There are no entries matching your query.
Sorting your output
So let’s say you want to see a list of your volumes in a cluster but sort them by percent of space available. Guess what? You can do that in the CLI! Use -sort-by.
cluster::*> vol show -fields percent-used -sort-by percent-used vserver volume percent-used ------------ ------ ------------ NAS mixed 5% NAS ntfs 5% NAS unix 5% NAS unix2 5% NAS vsroot 5% TRUST ntfs 5% TRUST unix 5% TRUST vsroot 6%
Sort-tastic!
But can I sort stats?
Of course you can! You can use the -sort-key option to do that. Find that problem volume fast!
cluster::> statistics volume show -sort-key latency -max 3 cluster : 9/18/2014 15:13:33 Total Read Write Other Read Write *Latency Volume Vserver Ops Ops Ops Ops (Bps) (Bps) (us) --------- ----------- ----- ---- ----- ----- ------- ------- -------- basevol_5 VS_2_802002 268 166 81 21 3322384 1618744 119387 basevol_5 VS_9_802009 325 177 124 23 3539789 2494725 103094 basevol_5 VS_1_802001 399 215 158 25 4307034 3163792 97657
Viewing event logs
You can use a combination of the tricks above to effectively view event logs to search for errors.
Maybe you want to see only error messages:
cluster::> event log show -severity err Time Node Severity Event ------------------- ---------------- ------------- --------------------------- 2/13/2015 15:10:07 clusternode-02 ERROR secd.ldap.connectFailure: vserver (TRUST) could not make a connection over the network to LDAP server (italy) at address (10.228.225.125) and received error (Invalid credentials) 2/13/2015 11:06:33 clusternode-02 ERROR secd.ldap.connectFailure: vserver (TRUST) could not make a connection over the network to LDAP server (italy) at address (10.228.225.125) and received error (Invalid credentials) 2/13/2015 06:57:58 clusternode-02 ERROR secd.ldap.connectFailure: vserver (TRUST) could not make a connection over the network to LDAP server (italy) at address (10.228.225.125) and received error (Invalid credentials) 2/13/2015 02:59:22 clusternode-02 ERROR secd.ldap.connectFailure: vserver (TRUST) could not make a connection over the network to LDAP server (italy) at address (10.228.225.125) and received error (Invalid credentials)
Maybe you want to see messages from a specific event type:
cluster::> event log show -messagename secd* Time Node Severity Event ------------------- ---------------- ------------- --------------------------- 2/13/2015 15:10:07 clusternode-02 ERROR secd.ldap.connectFailure: vserver (TRUST) could not make a connection over the network to LDAP server (italy) at address (10.228.225.125) and received error (Invalid credentials) 2/13/2015 11:06:33 clusternode-02 ERROR secd.ldap.connectFailure: vserver (TRUST) could not make a connection over the network to LDAP server (italy) at address (10.228.225.125) and received error (Invalid credentials) 2/13/2015 06:57:58 clusternode-02 ERROR secd.ldap.connectFailure: vserver (TRUST) could not make a connection over the network to LDAP server (italy) at address (10.228.225.125) and received error (Invalid credentials) 2/13/2015 02:59:22 clusternode-02 ERROR secd.ldap.connectFailure: vserver (TRUST) could not make a connection over the network to LDAP server (italy) at address (10.228.225.125) and received error (Invalid credentials)
Or maybe you only want to see errors for the last 2 hours:
cluster::> event log show -time >120m -severity err Time Node Severity Event ------------------- ---------------- ------------- --------------------------- 2/13/2015 15:10:07 clusternode-02 ERROR secd.ldap.connectFailure: vserver (TRUST) could not make a connection over the network to LDAP server (italy) at address (10.228.225.125) and received error (Invalid credentials)
Question marks in LUN serial numbers, etc?
In cDOT, the question mark (?) automatically triggers a help screen whenever you type it. This is useful in many cases, but not when you want to set a LUN serial number with a question mark in it. However, there is a way to disable the help function:
cluster::> set -active-help false
Once you do that, the ? will no longer trigger the help screen!
Lots more you can do from the CLI… But the stuff above should get you more than ready!
To close this out, let’s play a ninja song (NSFW, btw).
Pingback: Partial Givebacks during Storage Failovers in NetApp's Clustered Data ONTAP - Datacenter Dude
Pingback: Why Is the Internet Broken: Greatest Hits | Why Is The Internet Broken?
Helpful article Justin!
Now can I/how do I make this work? A wild card with embedded space.
event log show -node nap40-01 -time *9/20/2015 12*
LikeLike
No way around that other than changing the command to do a range. For example: event log show -node nap40-01 -time “9/20/2015 12:00”..”9/20/2015 13:00″
LikeLike
Some times the lines wrap in the cli, I haven’t found any cure for that ?
LikeLike
I use puTTy and just maximize the screen. That gets rid of the line wrap for me. 🙂
LikeLike
I am able to get the line wrap issue to go away by using ‘rows 0’ (not sure why that fixes the column length, but it works). In some case, commands are still going to cause a wrap. However, I’m able to get around most of these issues by using the -fields to consolidate the output a bit.
Good info here! Thanks JP!
LikeLike
You can also use signs to show everything above or below a value or date for many things. As in, show me every volume over 1TB, vol show -size >1TB, or vol show -create-time <Fri Jan 01 00:00:00 2016 will show all volumes create before 2016. I bet there's even more I haven't found yet as well.
LikeLike
Thanks Justin, lots of good information here.
I’m wondering if there is a way to explicitly exclude information from a command output? The example I’ll use is “vol show -fields volume,size” will present me with vserver, volume and size when I run the command but what I’d really like to do is exclude vserver so I can get a nice long list that’s formatted in a way that I can use to build other commands.
LikeLike
No way that I know of via CLI, but ZAPI could work.
LikeLike
Pingback: ONTAP CLI comparison tool | Why Is The Internet Broken?
Thanks for the useful info! One issue I am having, is that I am not able to get “-sort-by” to work in ontap 9. Has this switch been deprecated?
LikeLike
Nope. It works fine. Been using it in 9.3 pre-builds. Did you try advanced or diag mode? Should be -sort-by.
What syntax did you use?
LikeLike
Ok I got it to work. I had issued a “set advanced” when I tried it last time. This time I issued a “set diagnostic”, and then the -sort-by argument was accepted. Thanks again!
LikeLike
Anway to use grep, sed or awk with OnTap CLI?
Also, is there a REST API?
LikeLike
You can use grep/awk/sed with ONTAP CLI if you use passthrough SSH commands from a linux client or you use systemshell. To run a cluster command from systemshell, you can type in “ngsh -c [command]” and use grep/awk/sed there.
REST API is not currently available in ONTAP. Right now, we provide ZAPIs.
LikeLike
For multiple systems I recommend using ssh keys and using the cli on the linux/unix host. Then you can issue your commands from the cli & use grep or awk or sed etc.. I setup alias ie) somecluster=’ssh -i /export/home/myuserid/.ssh/id_rsa -2 myuserid@somecluster’ this way I can issue commands by typing the alias followed by a command, for diag etc ie) somecluster “set d; version ” to use the ? same deal encapsulate with double quotes, same for use of -date you can end a double quote & continue to enter the remainder of a command… also single quotes on either side of a ! statement & use of braces for comments with white space.. {comment here} this way you can use bash to write simple scripts to mass produce volumes, LUNs, mappings etc. all depends on your experience but you can also use this to grow your skills. one off systems the GUI is fine.. multiple systems in a larger environment you will waste a tonne of time.
my 2 cents
LikeLike
Thanks! Good tips!
LikeLike
Hi I was curious if the nfsv3_ops / s is completed ops per second or arriving ops / s?
LikeLike
Not 100% sure, but I think it may be completed ops.
LikeLike