nodeshell(8) -- Execute command on many nodes in a noderange through ssh¶
SYNOPSIS¶
nodeshell [options] <var>noderange</var> <var>command to execute on each node</var>
DESCRIPTION¶
Allows execution of a command on many nodes in parallel. Like noderun(8), it accepts and interpolates confluent attribute expressions as documented in nodeattribexpressions(5). nodeshell provides stdout as stdout and stderr as stderr, unlike psh which combines all stdout and stderr into stdout.
OPTIONS¶
-
-c COUNT,-f COUNT,--count=COUNTSpecify the maximum number of instances to run concurrently -
-l LOGINNAME,--loginname=LOGINNAMEUsername to use when connecting, defaults to current user. -
-m MAXNODES,--maxnodes=MAXNODESSpecify a maximum number of nodes to run remote ssh command to, prompting if over the threshold -
-n,--nonodeprefixDo not prefix output with node names -
-p PORT,--port=PORTSpecify a custom port for ssh -
-s SUBSTITUTION,--substitutename=SUBSTITITUTIONSpecify a substitution name instead of the nodename. If no {} are in the substitution, it is considered to be an append. For example, '-s -ib' would produce 'node1-ib' from 'node1'. Full expression syntax is supported, in which case the substitution is considered to be the entire new name. {node}-ib would be equivalent to -ib. For example, nodeshell -s {bmc} node1 would ssh to the BMC instead of the node.
EXAMPLES¶
-
Running
echo hion for nodes:# nodeshell n1-n4 echo hi
n1: hi
n2: hi
n3: hi
n4: hi -
Setting a new static ip address temporarily on secondary interface of four nodes:
# nodeshell n1-n4 ifconfig eth1 172.30.93.{n1} -
If wanting to use literal {} in the command, they must be escaped by doubling:
# nodeshell n1-n4 "ps | awk '{{print $1}}'"
SEE ALSO¶
noderun(8)