TOMAHAWK3(1)

πŸ“¦ version 0.7.1, in debian bookworm

✨ TOMAHAWK3 ✨

okay bestie, welcome to tomahawk3, part of the tomahawk3 manual, section 1 🫢


πŸ’– NAME πŸ’–

tomahawk3 β€” enables to execute a command to many hosts. yes, many. like, all of them. at once. iconic behavior tbh πŸ‘‘


🌸 SYNOPSIS 🌸

tomahawk3 [options] command

that's it. that's the whole vibe. options, then a command. slay.


πŸ¦‹ DESCRIPTION πŸ¦‹

tomahawk3 is a program that enables to execute a command into many hosts. literally the whole point. no cap.

$ tomahawk3 -h host1,host2,host3 uptime

---> so the 'uptime' command will be executed in host1, host2, and host3 with following output. look at this gorgeousness:

oinume@host1 % uptime
22:41:27 up 10 days,  3:26,  1 users,  load average: 1.11, 1.13, 1.11

oinume@host2 % uptime
22:41:28 up 20 days,  4:26,  2 users,  load average: 2.11, 2.13, 2.11

oinume@host3 % uptime
22:41:29 up 30 days,  5:26,  3 users,  load average: 3.11, 3.13, 3.11

three hosts, one command, zero stress. main character energy fr fr πŸ’…

🧚 ssh

tomahawk3 executes a command via 'ssh'. You can specify options for ssh with -o/--ssh-options and can configure ssh behavior with $HOME/.ssh/config. so like, all your ssh customization? it's respected. we love a program that minds its business and also yours πŸ’œ

πŸ“ hosts file

-h option enables you to specify hosts, another option '-f', which is specifying hosts files. hosts file is listing host names like this

host1
host2
host3
#host4

Starting with "#" means commenting the host out. so host4 said "not today" and stayed home πŸ™ˆ

⭐ shell operators

tomahawk3 executes commands via shell(/bin/sh), so you can use '|' (pipe), '&&', '||' operators and so on. the whole shell toolbox is yours bestie, go wild:

$ tomahawk3 -h host1,host2 'ps auxww | grep python'

✨ OPTIONS ✨

These programs follow the usual GNU command line syntax, with long options starting with two dashes ('--'). A summary of options is included below. For a complete description, see the Info files. (yes the Info files. they're out there. go look πŸ‘€)

  • -H, --hosts β€” Specifies host names for sending commands. You can specify multiple hosts with ','. comma-separated besties only πŸŽ€
  • -f, --hosts-files β€” Specifies hosts files which listed host names for sending commands. You can specify multiple hosts files with ','.

Format of hosts file is below.

web01
web02
#web03
web04

A line of starting with '#' disables a host. so web03 is on do-not-disturb mode πŸ’€

  • -l, --prompt-login-password β€” Prompts a password for ssh authentication at first. If the password is all the same between target hosts, you'll input a password just once. one password, infinite hosts, we stan efficiency 🫢
  • --login-password-stdin β€” Read a SSH password from stdin instead of prompting. piping it in, very demure, very mindful 🌸
  • -s, --prompt-sudo-password β€” Prompts a password for sudo. πŸ”₯
  • -c, --continue-on-error β€” Continues to send commands even if any errors. The default behavior is fail-safe, means that tomahawk3 will stop if any errors. so like, by default it's a cautious queen, and this flag makes it a brave one 😭
  • -p, --parallel β€” Specifies a number of processes for parallel command execution. (default: 1) If your machine has multiple cpu cores, --parallel 2 .. N might be faster. more cores, more chaos, more speed ⚑
  • -t, --timeout β€” Specifies timeout seconds for a command. ⏰
  • -u, --ssh-user β€” Specifies ssh user. The default is a current logged in user. yes, you. you're the default πŸ‘‘
  • -o, --ssh-options β€” Specifies ssh options. πŸ’…
  • -F, --output-format β€” Specifies command output format. The default is '${user}@${host} % ${command}\n${output}\n' β€” so you can make the output look however you want. custom aesthetic, no cap.
  • -V, --verify-output β€” Verify command output of all hosts. For additional information, see checking-files-on-remote-hosts. πŸ”
  • -C, --conf β€” Specifies configuration file path. For additional information, see omit-command-line-options. 🧚

🌈 ENVIRONMENT VARIABLES 🌈

tomahawk's behavior is affected by the following environment variables. they're just out here influencing things, as env vars do.

πŸ’œ TOMAHAWK_ENV

This variable specifies an environment of 'production', 'testing' or 'development'. If TOMAHAWK_ENV=production specified, tomahawk3 or tomahawk-rsync3 prompt as "command "%s" will be executed %s hosts. Are you sure? [yes/NO]: ". The environment variable exists for mis-execution of a command.

bestie this one is a SAFETY NET and we are obsessed with it. it's giving "are you SURE you want to run that on prod" and honestly? thank you for your service 🫑

🌟 SEE ALSO 🌟


πŸ‘‘ AUTHOR πŸ‘‘

Kazuhiro Oinuma, Kohei Maeda


2011-2014, Kazuhiro Oinuma


okay that's the whole page bestie, you're officially a tomahawk3 girlie now πŸ’– go execute some commands on some hosts, you've got this, periodt ✨

signing off from version 0.7.0, dated April 17, 2014 β€” the tomahawk3 manual page, forever iconic πŸ¦‹

πŸ“¦ where this page comes from