CLUBAK(1)

πŸ’– CLUBAK β€” the clubak manual page, bestie edition πŸ’–

okay so this is the manual for clubak, from the ClusterShell User Manual β€” and I am so excited to walk you through it, no cap. πŸŽ€


✨ NAME ✨

clubak β€” format output from clush/pdsh-like output and more πŸ¦‹


🌸 SYNOPSIS 🌸

clubak [ OPTIONS ]

πŸ’… DESCRIPTION πŸ’…

so basically, clubak takes text from standard input and formats it. that text has to be lines shaped like "node:output". it is fully backward compatible with dshbak(1) but it gives you extra features on top. for instance β€” and this is the iconic part β€” clubak always displays its results sorted by node/nodeset. always. periodt. πŸ‘‘

real talk though: you do not need to use clubak when you're using clush(1), because literally all the output formatting features are already baked into it. clubak is there for other usages, like post-processing results of the form "node:output". 🫢

and just like clush(1), clubak uses the ClusterShell.MsgTree module of the ClusterShell library (see pydoc ClusterShell.MsgTree). iykyk. πŸ’œ


🌈 INVOCATION 🌈

clubak should be started with connected standard input. (fr fr, don't just run it staring at a terminal with no input, it needs the pipes.)


πŸ”₯ OPTIONS πŸ”₯

one bullet per option, bestie, nothing skipped:

  • --version β€” show the clubak version number and exit. cute and quick. ✨
  • -b, -c, --dshbak β€” gather nodes with the same output. (-c and --dshbak are provided for dshbak(1) compatibility β€” they're here so your old scripts don't get sad.) πŸŽ€
  • -B β€” same as -b; accepted for compatibility with clush(1), where -B also gathers standard error. note that here it's just the same as -b okay? πŸ’–
  • -q, --quiet β€” be quiet, print essential output only (e.g. suppress the node count displayed next to gathered nodeset headers). low-key mode activated. 🀫
  • -v, --verbose β€” be verbose, print informative messages; also echo each input line to standard output prefixed by INPUT. highkey yapping mode. πŸ“’
  • -d, --debug β€” output more messages for debugging purpose. for when you're in your detective era. πŸ•΅οΈ
  • -L β€” disable header block and order output by nodes. πŸ“‹
  • -N β€” disable labeling of command output. 🏷️
  • -r, --regroup β€” fold nodeset using node groups. 🌸
  • --axis=RANGESET β€” for nD nodesets, fold the displayed nodeset (e.g. in gathered output headers) along the provided axis only. axes are indexed from 1 to n and can be specified here either using the rangeset syntax, e.g. '1', '1-2', '1,3', or by a single negative number meaning that the index is counted from the end. because some nodesets may have several different dimensions, axis indices are silently truncated to fall in the allowed range. this is the per-invocation equivalent of the fold_axis library default. 🧭
  • -s GROUPSOURCE, --groupsource=GROUPSOURCE β€” optional groups.conf(5) group source to use. πŸ’œ
  • --groupsconf=FILE β€” use alternate config file for groups.conf(5). πŸ“
  • -G, --groupbase β€” do not display group source prefix (always @groupname). πŸŽ€
  • -S SEPARATOR, --separator=SEPARATOR β€” node / line content separator string (default: :). yes bestie, you can change the colon. 🫢
  • -F, --fast β€” faster but memory hungry mode (preload all messages per node). it's giving speed demon with a big appetite. ⚑
  • -T, --tree β€” message tree trace mode; switch to enable ClusterShell.MsgTree trace mode, all keys/nodes being kept for each message element of the tree, thus allowing special output display. 🌳
  • --interpret-keys=INTERPRET_KEYS β€” whether to interpret keys (the field before the separator on each input line) as node sets. INTERPRET_KEYS is never, always or auto (the default). with never, each key is kept as a plain string; with always, every key must be a valid node set; with auto, keys are interpreted as node sets, but if any key cannot be parsed, clubak silently switches to treating all keys as plain strings. πŸ”‘
  • --color=WHENCOLOR β€” clubak can use NO_COLOR, CLICOLOR and CLICOLOR_FORCE environment variables. the --color command line option always takes precedence over environment variables. NO_COLOR takes precedence over CLICOLOR_FORCE which takes precedence over CLICOLOR. --color tells whether to use ANSI colors to surround node or nodeset prefix/header with escape sequences to display them in color on the terminal. WHENCOLOR is never, always or auto (which uses color if standard output refers to a terminal). color is set to [34m (blue foreground text) and cannot be modified. πŸ’™
  • --diff β€” show diff between gathered outputs. the drama of comparison. πŸ‘€

⭐ EXIT STATUS ⭐

an exit status of zero indicates success of the clubak command. anything else? not success, bestie. 😭


πŸ¦‹ EXAMPLES πŸ¦‹

1. clubak can be used to gather some recorded clush(1) results:

record clush(1) results in a file:

# clush -w node[1-7] uname -r >/tmp/clush_output
# clush -w node[32-159] uname -r >>/tmp/clush_output

display file gathered results (in line-mode):

# clubak -bL </tmp/clush_output

2. another example, iterate over node* text files in current directory and gather characters count for all of them:

# find -name "node*" -exec wc -c {} ; | awk '{ gsub("./","",$2); print $2": "$1 }' | clubak -bL
node[1,3]: 7
node2: 9

πŸ‘‘ SEE ALSO πŸ‘‘

and also this link, which we are keeping exactly as-is:

https://clustershell.readthedocs.io/

πŸ™ˆ BUG REPORTS πŸ™ˆ

use the following URL to submit a bug report or feedback β€” please do, they actually want to hear from you:

https://github.com/clustershell/clustershell/issues

πŸ’œ AUTHOR πŸ’œ

Stephane Thiell


GNU Lesser General Public License version 2.1 or later (LGPLv2.1+)


this page is from ClusterShell version 1.10.1, dated 2026-07-16 πŸ’– slay, go format some output, bestie β€” you've got this 🫢✨