I'm trying to use CDOT noninteractively from bash, but running into trouble. Let's say for example you wanted to get a list of volumes on an SVM and then sort by size- there's no sort in the interactive CLI and it asks you to enter text every page of results, so my initial thought was to send the command noninteractively and do what I need done in bash. If you send the command "ssh user@nas volume show -vserver whatever", you get a nicely formatted table without any of the line-splitting, confirmations, or other interactive shell nonsense:
Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- svm vol1 aggr1 online RW 2TB 2.00TB 0% svm vol2 aggr1 online RW 100GB 100.00GB 0%
This is much better, but I still can't use the size field to sort unless I can change it all to the same unit. If this were an interactive session, I'd use "set -units GB", however it's not. How can I accomplish that non-interactively? Can I send multiple commands in one ssh command?
One thing that should work but doesn't is creating a list of commands that will run and sending them via ssh-
me@myserver:/home/me $ cat temp set -units KB volume show -vserver svm -volume *root me@myserver:/home/me $ ssh admin@nas < temp Pseudo-terminal will not be allocated because stdin is not a terminal. nas::> set -units KB
nas::> volume show -vserver svm -volume *root Vserver Volume Aggregate State Type Size Available Used% --------- ------------ ------------ ---------- ---- ---------- ---------- ----- svm svm_root aggr1 online RW 1048576KB 995796KB 5%
nas::>
me@myserver:/home/me $
As you see, as soon as it detects multiple lines, it switches back to the interactive shell. If I had use something with more than a single line of output, it would have given me a couple of lines, asked for "confirmation", and then exited. All the while putting "readability" whitespace inconsistently all over the results.
Any ideas?
Basil