nodeshell(8) - Execute command on many nodes in a noderange through ssh
  1. nodeshell(8)
  2. nodeshell(8)

NAME

nodeshell - Execute command on many nodes in a noderange through ssh

SYNOPSIS

nodeshell [options] <noderange> <command to execute on each node>

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=COUNT Specify the maximum number of instances to run concurrently

  • -l LOGINNAME, --loginname=LOGINNAME Username to use when connecting, defaults to current user.

  • -m MAXNODES, --maxnodes=MAXNODES Specify a maximum number of nodes to run remote ssh command to, prompting if over the threshold

  • -n, --nonodeprefix Do not prefix output with node names

  • -p PORT, --port=PORT Specify a custom port for ssh

  • -s SUBSTITUTION, --substitutename=SUBSTITITUTION Specify 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 hi on 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 ''"

SEE ALSO

noderun(8)

  1. October 2023
  2. nodeshell(8)