FreeBSD Manual Pages
GSH(1) User Contributed Perl Documentation GSH(1) NAME gsh - Global Shell run commands in parallel to multiple machines SYNOPSIS gsh [OPTIONS] SYSTEMS CMD... SYSTEMS is a combination of ghost macros. See ghosts(1). CMD is the command to run -h, --help Display full help -d, --debug Turn on exeuction debugging reports -g, --ghosts specific ghosts configuration file -p, --no-host-prefix Does not prefix output lines with the host name -s, --show-commands Displays the command before the output report -n, --open-stdin Leaves stdin open when running (scary!) -l, --user USER SSH's to the host as user USER -r, --run-locally Run commands locally (replaces $host with host) -o, --self-remote Run locally instead of over SSH for local host -V, --version Report the version and exit DESCRIPTION The idea behind this tool originally came from wanting to do something on each machine in our network. Existing scripts would serially go to each machine run the command, wait for it to finish, and continue to the next machine. There was no reason why this couldn't be done in parallel. The problems, however, were many. First of all, the output from finishing parallel jobs needs to be buffered in such a way that different machines wouldn't output their results on top of eachother. A final bit was added because it was nice to have output alphabetical rather than first-done, first-seen. The result is a parallel job spawner that displays output from the machines alphabetically, as soon as it is available. If "alpha" take longer than "zebra", there will be no output past "alpha" until it is finished. As soon as "alpha" is finished, though, everyone's output is printed. Sending a SIGUSR1 to gsh(1) will cause it to report which machines are still pending. (Effectively turns on --debug for one cycle.) OPTIONS -h, --help Displays this help. -d, --debug Turns on debugging. A regular report of pending hosts is create, and PIDs are show as commands are executed and reaped. -g, --ghosts CONFIG_FILE Uses the provided ghosts configuration file, instead of /etc/ghosts. This means /etc/ghosts will not be read, at all. -p, --no-host-prefix Turns off the prefixing of hostnames to the output reports. -s, --show-command Displays the command being run before the output report for each host. -n, --open-stdin Leave stdin open when SSH'ing. This can cause hangs and other strange situations, but can be useful in uncommon situations where you need to pipe input to all of the child processes. -l, --user USER SSH as a user USER on the remote machines. -r, --run-locally Instead of SSH'ing to hosts, run the commands locally. The string '$host' will be replaced with the name of the current host. For example: gsh -r all 'echo $host' -o, --self-remote Normally, if the local host running gsh is listed among the hosts to SSH to, gsh will just run the command locally instead of attempting to SSH back to the local machine. If you want gsh to SSH to the local machine anyway, turn this option on. -V, --version Displays the version information and exits. PREREQUISITES "POSIX" "File::Temp" "SystemManagement::Ghosts" BUGS I bet. SEE ALSO perl(1), ghosts(1), ssh(1), SystemManagement::Ghosts(1) AUTHOR Kees Cook <kees@outflux.net> <http://www.outflux.net/> COPYRIGHT Copyright (C) 1998-2014 Kees Cook <kees@outflux.net> Supposedly based on original code distributed with Perl Distribution. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. REVISION Revision: $Revision $ perl v5.32.1 2015-06-19 GSH(1)
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | PREREQUISITES | BUGS | SEE ALSO | AUTHOR | COPYRIGHT | REVISION
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=gsh&sektion=1&manpath=FreeBSD+13.1-RELEASE+and+Ports>