blob: f8f0ab735d5e0d177a256c4f95b586912ea0649a [file] [log] [blame]
COMMAND NAME: hawq ssh
Provides ssh access to multiple hosts at once.
*****************************************************
SYNOPSIS
*****************************************************
hawq ssh { -f <hostfile_hawq ssh> | -h <hostname> [-h <hostname> ...] }
[-u userid] [-v] [-e] [<bash_command>]
hawq ssh -?
hawq ssh --version
*****************************************************
DESCRIPTION
*****************************************************
The hawq ssh utility allows you to run bash shell commands on
multiple hosts at once using SSH (secure shell). You can execute
a single command by specifying it on the command-line, or omit
the command to enter into an interactive command-line session.
To specify the hosts involved in the SSH session, use the -f
option to specify a file containing a list of host names, or use
the -h option to name single host names on the command-line. At
least one host name (-h) or a host file (-f) is required. Note that
the current host is not included in the session by default to
include the local host, you must explicitly declare it in the
list of hosts involved in the session.
Before using hawq ssh, you must have a trusted host setup between
the hosts involved in the SSH session. You can use the utility
hawq ssh-exkeys to update the known host files and exchange public
keys between hosts if you have not done so already.
If you do not specify a command on the command-line, hawq ssh will
go into interactive mode. At the hawq ssh command prompt (=>), you
can enter a command as you would in a regular bash terminal command-line,
and the command will be executed on all hosts involved in the session.
To end an interactive session, press CTRL+D on the keyboard or type
exit or quit.
If a user name is not specified in the host list file, hawq ssh will
execute commands as the currently logged in user. To determine the
currently logged in user, do a whoami command. By default, hawq ssh goes
to $HOME of the session user on the remote hosts after login. To ensure
commands are executed correctly on all remote hosts, you should always
enter absolute paths.
*****************************************************
OPTIONS
*****************************************************
<bash_command>
A bash shell command to execute on all hosts involved in this
session (optionally enclosed in quotes). If not specified, hawq ssh
will start an interactive session.
-e (echo)
Optional. Echoes the commands passed to each host and their
resulting output while running in non-interactive mode.
-f <hostfile_hawqssh>
Specifies the name of a file that contains a list of hosts that
will participate in this SSH session. The host name is required,
and you can optionally specify an alternate user name and/or SSH
port number per host. The syntax of the host file is one host
per line as follows::
[username@]hostname[:ssh_port]
-h <hostname>
Specifies a single host name that will participate in this SSH session.
You can use the -h option multiple times to specify multiple host names.
-u <userid>
Specifies the userid for this SSH session.
-v (verbose mode)
Optional. Reports additional messages in addition to the command
output when running in non-interactive mode.
--version
Displays the version of this utility.
-? (help)
Displays the online help.
*****************************************************
EXAMPLES
*****************************************************
Start an interactive group SSH session with all hosts listed
in the file hostfile_hawqssh:
$ hawq ssh -f hostfile_hawqssh
At the hawq ssh interactive command prompt, run a shell command
on all the hosts involved in this session.
=> ls -a /data/primary/*
Exit an interactive session:
=> exit
Start a non-interactive group SSH session with the hosts
named dw1 and dw2 and pass a file containing several commands
named command_file to hawq ssh:
$ hawq ssh -h sdw1 -h sdw2 -v -e < command_file
Execute single commands in non-interactive mode on hosts sdw2
and localhost:
$ hawq ssh -h sdw2 -h localhost -v -e 'ls -a /data/primary/*'
$ hawq ssh -h sdw2 -h localhost -v -e 'echo $GPHOME'
$ hawq ssh -h sdw2 -h localhost -v -e 'ls -1 | wc -l'