mirror of
https://github.com/duncs/clusterssh.git
synced 2025-04-22 01:12:24 +00:00
Add in common session options and remove all pod
This commit is contained in:
parent
ed405b9c98
commit
8990956ad4
1 changed files with 1 additions and 873 deletions
874
bin_PL/cssh
874
bin_PL/cssh
|
@ -10,7 +10,7 @@ use App::ClusterSSH;
|
|||
my $app = App::ClusterSSH->new();
|
||||
|
||||
$app->options->add_common_ssh_options;
|
||||
$app->add_common_session_options;
|
||||
$app->options->add_common_session_options;
|
||||
|
||||
$app->add_option(
|
||||
spec => 'freddo|z',
|
||||
|
@ -19,876 +19,4 @@ $app->add_option(
|
|||
|
||||
$app->run();
|
||||
|
||||
__DATA__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
cssh, crsh, ctel, ccon - Cluster administration tool
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
S<< cssh [options] [[user@]<server>[:port]|<tag>] [...] >>
|
||||
S<< crsh [options] [[user@]<server>[:port]|<tag>] [...] >>
|
||||
S<< ctel [options] [<server>[:port]|<tag>] [...] >>
|
||||
S<< ccon [options] [[user@]<server>[:port]|<tag>] [...] >>
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The command opens an administration console and an xterm to all specified
|
||||
hosts. Any text typed into the administration console is replicated to
|
||||
all windows. All windows may also be typed into directly.
|
||||
|
||||
This tool is intended for (but not limited to) cluster administration where
|
||||
the same configuration or commands must be run on each node within the
|
||||
cluster. Performing these commands all at once via this tool ensures all
|
||||
nodes are kept in sync.
|
||||
|
||||
Connections are opened via ssh, so a correctly installed and configured
|
||||
ssh installation is required. If, however, the program is called by "crsh"
|
||||
then the rsh protocol is used (and the communications channel is insecure),
|
||||
or by "ctel" then telnet is used, or by "ccon" then console is used.
|
||||
|
||||
Extra caution should be taken when editing system files such as
|
||||
/etc/inet/hosts as lines may not necessarily be in the same order. Assuming
|
||||
line 5 is the same across all servers and modifying that is dangerous.
|
||||
It's better to search for the specific line to be changed and double-check
|
||||
before changes are committed.
|
||||
|
||||
=head2 Further Notes
|
||||
|
||||
Please also see L</KNOWN BUGS>.
|
||||
|
||||
=over
|
||||
|
||||
=item *
|
||||
|
||||
The dotted line on any sub-menu is a tear-off, i.e. click on it
|
||||
and the sub-menu is turned into its own window.
|
||||
|
||||
=item *
|
||||
|
||||
Unchecking a hostname on the Hosts sub-menu will unplug the host from the
|
||||
cluster control window, so any text typed into the console is not sent to
|
||||
that host. Re-selecting it will plug it back in.
|
||||
|
||||
=item *
|
||||
|
||||
If your window manager menu bars are obscured by terminal windows see
|
||||
the C<screen_reserve_XXXXX> options in the F<$HOME/.clusterssh/config> file (see L</"FILES">).
|
||||
|
||||
=item *
|
||||
|
||||
If the terminals overlap too much see the C<terminal_reserve_XXXXX>
|
||||
options in the F<$HOME/.clusterssh/config> file (see L</"FILES">).
|
||||
|
||||
=item *
|
||||
|
||||
If the code is called as crsh instead of cssh (i.e. a symlink called
|
||||
crsh points to the cssh file or the file is renamed) rsh is used as the
|
||||
communications protocol instead of ssh.
|
||||
|
||||
=item *
|
||||
|
||||
If the code is called as ctel instead of cssh (i.e. a symlink called
|
||||
ctel points to the cssh file or the file is renamed) telnet is used as the
|
||||
communications protocol instead of ssh.
|
||||
|
||||
=item *
|
||||
|
||||
If the code is called as ccon instead of cssh (i.e. a symlink called
|
||||
ccon points to the cssh file or the file is renamed) console is used as the
|
||||
communications protocol instead of ssh.
|
||||
|
||||
=item *
|
||||
|
||||
When using cssh on a large number of systems to connect back to a single
|
||||
system (e.g. you issue a command to the cluster to scp a file from a given
|
||||
location) and when these connections require authentication (i.e. you are
|
||||
going to authenticate with a password), the sshd daemon at that location
|
||||
may refuse connects after the number specified by MaxStartups in
|
||||
sshd_config is exceeded. (If this value is not set, it defaults to 10.)
|
||||
This is expected behavior; sshd uses this mechanism to prevent DoS attacks
|
||||
from unauthenticated sources. Please tune sshd_config and reload the SSH
|
||||
daemon, or consider using the ~/.ssh/authorized_keys mechanism for
|
||||
authentication if you encounter this problem.
|
||||
|
||||
=item *
|
||||
|
||||
If client windows fail to open, try running:
|
||||
|
||||
C<< cssh -e {single host name} >>
|
||||
|
||||
This will test the mechanisms used to open windows to hosts. This could
|
||||
be due to either the C<-xrm> terminal option which enables C<AllowSendEvents>
|
||||
(some terminals do not require this option, other terminals have another
|
||||
method for enabling it - see your terminal documentation) or the
|
||||
C<ConnectTimeout> ssh option (see the configuration option C<-o> or file
|
||||
C<$HOME/.clusterssh/config> below to resolve this).
|
||||
|
||||
=back
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
Some of these options may also be defined within the configuration file.
|
||||
Default options are shown as appropriate.
|
||||
|
||||
%OPTIONS%
|
||||
|
||||
=over
|
||||
|
||||
=item --action,-a '<command>'
|
||||
|
||||
Run the command in each session, e.g. C<-a 'vi /etc/hosts'> to drop straight
|
||||
into a vi session. NOTE: not all communications methods support this (ssh
|
||||
and rsh should, telnet and console will not).
|
||||
|
||||
=item --autoclose,-K <seconds>
|
||||
|
||||
Number of seconds to wait before closing finished terminal windows.
|
||||
|
||||
=item --autoquit,-q|--no-autoquit,-Q
|
||||
|
||||
Enable|Disable automatically quiting after the last client window has closed
|
||||
(overriding the config file)
|
||||
|
||||
=item --cluster-file,-c <file>
|
||||
|
||||
Use supplied file as additional cluster file (see also L</"FILES">)
|
||||
|
||||
=item --config-file,-C <file>
|
||||
|
||||
Use supplied file as additional configuration file (see also L</"FILES">)
|
||||
|
||||
=item -d
|
||||
|
||||
DEPRECATED. See '--debug'.
|
||||
|
||||
=item -D
|
||||
|
||||
DEPRECATED. See '--debug'.
|
||||
|
||||
=item --debug [number].
|
||||
|
||||
Enable debugging. Either a level can be provided or the option can be
|
||||
repeated multiple times. Maximum level is 4.
|
||||
|
||||
=item --evaluate,-e [user@]<hostname>[:port]
|
||||
|
||||
Display and evaluate the terminal and connection arguments to display any
|
||||
potential errors. The <hostname> is required to aid the evaluation.
|
||||
|
||||
=item --font,-f "5x8"
|
||||
|
||||
Specify the font to use in the terminal windows. Use standard X font notation.
|
||||
|
||||
=item --help,-h|-?
|
||||
|
||||
Show basic help text, and exit
|
||||
|
||||
=item --list, -L
|
||||
|
||||
List available cluster tags.
|
||||
|
||||
=item --man,-H
|
||||
|
||||
Show full help text (the man page), and exit
|
||||
|
||||
=item --master,-M <master>
|
||||
|
||||
The console client program polls master as the primary server, rather than the
|
||||
default set at compile time (typically ``console'').
|
||||
|
||||
=item --options,-o "-x -o ConnectTimeout=10" - for ssh connections
|
||||
|
||||
=item --options,-o "" - for rsh connections
|
||||
|
||||
Specify arguments to be passed to ssh or rsh when making the connection.
|
||||
|
||||
B<NOTE:> any "generic" change to the method (e.g., specifying the ssh port to use)
|
||||
should be done in the medium's own config file (see C<ssh_config> and
|
||||
F<$HOME/.ssh/config>).
|
||||
|
||||
=item --output-config,-u
|
||||
|
||||
Output the current configuration in the same format used by the
|
||||
F<$HOME/.clusterssh/config> file.
|
||||
|
||||
=item --port,-p <port>
|
||||
|
||||
Specify an alternate port for connections.
|
||||
|
||||
=item --show-history,-s
|
||||
|
||||
IN BETA: Show history within console window. This code is still being
|
||||
worked upon, but may help some users.
|
||||
|
||||
=item --tag-file,-r <file>
|
||||
|
||||
Use supplied file as additional tag file (see also L</"FILES">)
|
||||
|
||||
=item --term-args,-t ""
|
||||
|
||||
Specify arguments to be passed to terminals being used
|
||||
|
||||
=item --tile,-g|--no-tile,-G
|
||||
|
||||
Enable|Disable window tiling (overriding the config file)
|
||||
|
||||
=item --title,-T "CSSH"
|
||||
|
||||
Specify the initial part of the title used in the console and client windows
|
||||
|
||||
=item --unique-servers,-m
|
||||
|
||||
Connect to each host only once
|
||||
|
||||
=item --use_all_a_records,-A
|
||||
|
||||
If a hostname resolves to multiple IP addresses, toggle whether or not to
|
||||
connect to all of them, or just the first one (see also config file entry)
|
||||
|
||||
=item --username,-l $LOGNAME
|
||||
|
||||
Specify the default username to use for connections (if different from the
|
||||
currently logged in user). B<NOTE:> will be overridden by <user>@<host>
|
||||
|
||||
=item --version,-v
|
||||
|
||||
Show version information and exit
|
||||
|
||||
=back
|
||||
|
||||
=head1 ARGUMENTS
|
||||
|
||||
The following arguments are supported:
|
||||
|
||||
=over
|
||||
|
||||
=item [user@]<hostname>[:port] ...
|
||||
|
||||
Open an xterm to the given hostname and connect to the administration
|
||||
console. An optional port number can be used if sshd is not listening
|
||||
on the standard port (i.e., not listening on port 22) and ssh_config cannot
|
||||
be used.
|
||||
|
||||
=item <tag> ...
|
||||
|
||||
Open a series of xterms defined by <tag> in one of the supplementary
|
||||
configuration files (see L</"FILES">).
|
||||
|
||||
Note: specifying a username on a cluster tag will override any usernames
|
||||
defined in the cluster
|
||||
|
||||
=back
|
||||
|
||||
=head1 KEY SHORTCUTS
|
||||
|
||||
The following key shortcuts are available within the console window, and all
|
||||
of them may be changed via the configuration files.
|
||||
|
||||
=over
|
||||
|
||||
=item Control-q
|
||||
|
||||
Quit the program and close all connections and windows
|
||||
|
||||
=item Control-+
|
||||
|
||||
Open the 'Add Host(s) or Cluster(s)' dialogue box. Multiple host or cluster
|
||||
names can be entered, separated by spaces.
|
||||
|
||||
=item Alt-n
|
||||
|
||||
Paste in the hostname part of the specific connection string to each
|
||||
client, minus any username or port, i.e.
|
||||
|
||||
C<< scp /etc/hosts server:files/<Alt-n>.hosts >>
|
||||
|
||||
would replace the <Alt-n> with the client's name in each window
|
||||
|
||||
=item Alt-r
|
||||
|
||||
Retile all the client windows
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXAMPLES
|
||||
|
||||
=over
|
||||
|
||||
=item Open up a session to 3 servers
|
||||
|
||||
S<$ cssh server1 server2 server3>
|
||||
|
||||
=item Open up a session to a cluster of servers identified by the tag 'farm1'
|
||||
and give the controlling window a specific title, where the cluster is defined
|
||||
in one of the default configuration files
|
||||
|
||||
S<$ cssh -T 'Web Farm Cluster 1' farm1>
|
||||
|
||||
=item Connect to different servers using different login names. NOTE: this can
|
||||
also be achieved by setting up appropriate options in the F<.ssh/config> file.
|
||||
Do not close cssh when the last terminal exits.
|
||||
|
||||
S<$ cssh -Q user1@server1 admin@server2>
|
||||
|
||||
=item Open up a cluster defined in a non-default configuration file
|
||||
|
||||
S<$ cssh -c $HOME/cssh.config db_cluster>
|
||||
|
||||
=item Use telnet on port 2022 instead of ssh
|
||||
|
||||
S<$ ctel -p 2022 server1 server2>
|
||||
|
||||
=item Use rsh instead of ssh
|
||||
|
||||
S<$ crsh server1 server2>
|
||||
|
||||
=item Use console with master as the primary server instead of ssh
|
||||
|
||||
S<$ ccon -M master server1 server2>
|
||||
|
||||
=back
|
||||
|
||||
=head1 FILES
|
||||
|
||||
=over
|
||||
|
||||
=item F</etc/clusters>, F<$HOME/.clusterssh/clusters>
|
||||
|
||||
These files contain a list of tags to server names mappings. When any name
|
||||
is used on the command line it is checked to see if it is a tag.
|
||||
If it is a tag, then the tag is replaced with the list of servers. The
|
||||
format is as follows:
|
||||
|
||||
S<< <tag> [user@]<server> [user@]<server> [...] >>
|
||||
|
||||
e.g.
|
||||
|
||||
# List of servers in live
|
||||
live admin1@server1 admin2@server2 server3 server4
|
||||
|
||||
All comments (marked by a #) and blank lines are ignored. Tags may be
|
||||
nested, but be aware of using recursive tags as they are not checked for.
|
||||
|
||||
Extra cluster files may also be specified either as an option on the
|
||||
command line (see C<cluster-file>) or in the user's F<$HOME/.clusterssh/config>
|
||||
file (see C<extra_cluster_file> configuration option).
|
||||
|
||||
NOTE: the last tag read overwrites any pre-existing tag of that name
|
||||
|
||||
NOTE: there is a special cluster tag called C<default> - any tags or hosts
|
||||
included within this tag will be automatically opened if no other tags
|
||||
are specified on the command line.
|
||||
|
||||
=item F</etc/tags>, F<$HOME/.clusterssh/tags>
|
||||
|
||||
Very similar to F<cluster> files but the definition is reversed. The
|
||||
format is:
|
||||
|
||||
S<< <host> <tag> [...] >>
|
||||
|
||||
This allows one host to be specified as a member of a number of tags. This
|
||||
format can be clearer than using F<clusters> files.
|
||||
|
||||
Extra tag files may be specified either as an option (see C<tag-file>) or within
|
||||
the user's F<$HOME/.clusterssh/config> file (see C<extra_tag_file>
|
||||
configuration option).
|
||||
|
||||
NOTE: All tags are added together
|
||||
|
||||
=item F</etc/csshrc> & F<$HOME/.clusterssh/config>
|
||||
|
||||
This file contains configuration overrides - the defaults are as marked.
|
||||
Default options are overwritten first by the global file, and then by the
|
||||
user file.
|
||||
|
||||
B<NOTE:> values for entries do not need to be quoted unless it is required
|
||||
for passing arguments, e.g.
|
||||
|
||||
terminal_allow_send_events="-xrm '*.VT100.allowSendEvents:true'"
|
||||
|
||||
should be written as
|
||||
|
||||
terminal_allow_send_events=-xrm '*.VT100.allowSendEvents:true'
|
||||
|
||||
=over
|
||||
|
||||
=item auto_close = 5
|
||||
|
||||
Close terminal window after this many seconds. If set to 0 will instead wait
|
||||
on input from the user in each window before closing. Can be overridden
|
||||
by C<-K> on the command line.
|
||||
|
||||
=item auto_quit = yes
|
||||
|
||||
Automatically quit after the last client window closes. Set to anything
|
||||
other than "yes" to disable. Can be overridden by C<-Q> on the command line.
|
||||
|
||||
=item clusters = <blank>
|
||||
|
||||
Define a number of cluster tags in addition to (or to replace) tags defined
|
||||
in the F</etc/clusters> file. The format is:
|
||||
|
||||
clusters = <tag1> <tag2> <tag3>
|
||||
<tag1> = host1 host2 host3
|
||||
<tag2> = user@host4 user@host5 host6
|
||||
<tag3> = <tag1> <tag2>
|
||||
|
||||
As with the F</etc/clusters> file, be sure not to create recursively nested tags.
|
||||
|
||||
=item comms = ssh
|
||||
|
||||
Sets the default communication method (initially taken from the name of the
|
||||
program, but can be overridden here).
|
||||
|
||||
=item console_position = <null>
|
||||
|
||||
Set the initial position of the console - if empty then let the window manager
|
||||
decide. Format is '+<x>+<y>', i.e. '+0+0' is top left hand corner of the screen,
|
||||
'+0-70' is bottom left hand side of screen (more or less).
|
||||
|
||||
=item external_cluster_command = <null>
|
||||
|
||||
Define the full path to an external command that can be used to resolve tags
|
||||
to host names. This command can be written in any language. The script must
|
||||
accept a list of tags to resolve and output a list of hosts on a single line.
|
||||
Any tags that cannot be resolved should be returned unchanged.
|
||||
|
||||
A non-0 exit code will be counted as an error, a warning will be printed and
|
||||
output ignored.
|
||||
|
||||
=item extra_cluster_file = <null>
|
||||
|
||||
Define an extra cluster file in the format of F</etc/clusters>. Multiple
|
||||
files can be specified, separated by commas. Both ~ and $HOME are acceptable
|
||||
as a reference to the user's home directory, i.e.
|
||||
|
||||
extra_cluster_file = ~/clusters, $HOME/clus
|
||||
|
||||
=item ignore_host_errors
|
||||
|
||||
THIS OPTION IS DEPRECATED. It has been left in so current systems continue
|
||||
to function as expected.
|
||||
|
||||
=item key_addhost = Control-Shift-plus
|
||||
|
||||
Default key sequence to open AddHost menu. See below notes on shortcuts.
|
||||
|
||||
=item key_clientname = Alt-n
|
||||
|
||||
Default key sequence to send cssh client names to client. See below notes
|
||||
on shortcuts.
|
||||
|
||||
=item key_localname = Alt-l
|
||||
|
||||
Default key sequence to send hostname of local server to client. See below
|
||||
notes on shortcuts.
|
||||
|
||||
=item key_paste = Control-v
|
||||
|
||||
Default key sequence to paste text into the console window. See below notes
|
||||
on shortcuts.
|
||||
|
||||
=item key_quit = Control-q
|
||||
|
||||
Default key sequence to quit the program (will terminate all open windows).
|
||||
See below notes on shortcuts.
|
||||
|
||||
=item key_retilehosts = Alt-r
|
||||
|
||||
Default key sequence to retile host windows. See below notes on shortcuts.
|
||||
|
||||
=item key_username = Alt-u
|
||||
|
||||
Default key sequence to send username to client. See below notes
|
||||
on shortcuts.
|
||||
|
||||
=item macro_servername = %s
|
||||
|
||||
=item macro_hostname = %h
|
||||
|
||||
=item macro_username = %u
|
||||
|
||||
=item macro_newline = %n
|
||||
|
||||
=item macro_version = %v
|
||||
|
||||
Change the replacement macro used when either using a 'Send' menu item, or when
|
||||
pasting text into the main console.
|
||||
|
||||
=item macros_enabled = yes
|
||||
|
||||
Enable or disable macro replacement. Note: this affects pasting into the
|
||||
main console, items on the 'Send' menu and key_clientname, key_localname,
|
||||
key_servername and key_username.
|
||||
|
||||
=item max_addhost_menu_cluster_items = 6
|
||||
|
||||
Maximum number of entries in the 'Add Host' menu cluster list before
|
||||
scrollbars are used
|
||||
|
||||
=item max_host_menu_items = 30
|
||||
|
||||
Maximum number of hosts to put into the host menu before starting a new column
|
||||
|
||||
=item menu_host_autotearoff = 0
|
||||
|
||||
=item menu_send_autotearoff = 0
|
||||
|
||||
When set to non-0 will automatically tear-off the host or send menu at
|
||||
program start
|
||||
|
||||
=item mouse_paste = Button-2 (middle mouse button)
|
||||
|
||||
Default key sequence to paste text into the console window using the mouse.
|
||||
See below notes on shortcuts.
|
||||
|
||||
=item rsh = rsh
|
||||
|
||||
=item ssh = ssh
|
||||
|
||||
=item telnet = telnet
|
||||
|
||||
Set the path to the specific binary to use for the communication method, else
|
||||
uses the first match found in $PATH
|
||||
|
||||
=item rsh_args = <blank>
|
||||
|
||||
=item ssh_args = "-x -o ConnectTimeout=10"
|
||||
|
||||
=item telnet_args = <blank>
|
||||
|
||||
Sets any arguments to be used with the communication method (defaults to ssh
|
||||
arguments).
|
||||
|
||||
B<NOTE:> The given defaults are based on OpenSSH, not commercial ssh software.
|
||||
|
||||
B<NOTE:> Any "generic" change to the method (e.g., specifying the ssh port to use)
|
||||
should be done in the medium's own config file (see C<ssh_config> and
|
||||
F<$HOME/.ssh/config>).
|
||||
|
||||
=item screen_reserve_top = 0
|
||||
|
||||
=item screen_reserve_bottom = 60
|
||||
|
||||
=item screen_reserve_left = 0
|
||||
|
||||
=item screen_reserve_right = 0
|
||||
|
||||
Number of pixels from the screen's side to reserve when calculating screen
|
||||
geometry for tiling. Setting this to something like 50 will help keep cssh
|
||||
from positioning windows over your window manager's menu bar if it draws one
|
||||
at that side of the screen.
|
||||
|
||||
=item rsh = /path/to/rsh
|
||||
|
||||
=item ssh = /path/to/ssh
|
||||
|
||||
Depending on the value of comms, set the path of the communication binary.
|
||||
|
||||
=item terminal = /path/to/terminal
|
||||
|
||||
Path to the X-Windows terminal used for the client.
|
||||
|
||||
=item terminal_args = <blank>
|
||||
|
||||
Arguments to use when opening terminal windows. Otherwise takes defaults
|
||||
from F<$HOME/.Xdefaults> or $<$HOME/.Xresources> file.
|
||||
|
||||
=item terminal_font = 6x13
|
||||
|
||||
Font to use in the terminal windows. Use standard X font notation.
|
||||
|
||||
=item terminal_reserve_top = 5
|
||||
|
||||
=item terminal_reserve_bottom = 0
|
||||
|
||||
=item terminal_reserve_left = 5
|
||||
|
||||
=item terminal_reserve_right = 0
|
||||
|
||||
Number of pixels from the terminal's side to reserve when calculating screen
|
||||
geometry for tiling. Setting these will help keep cssh from positioning
|
||||
windows over your scroll and title bars or otherwise overlapping the windows
|
||||
too much.
|
||||
|
||||
=item terminal_colorize = 1
|
||||
|
||||
If set to 1 (the default), then "-bg" and "-fg" arguments will be added
|
||||
to the terminal invocation command-line. The terminal will be colored
|
||||
in a pseudo-random way based on the host name; while the color of a terminal
|
||||
is not easily predicted, it will always be the same color for a given host
|
||||
name. After a while, you will recognize hosts by their characteristic
|
||||
terminal color.
|
||||
|
||||
=item terminal_bg_style = dark
|
||||
|
||||
If set to dark, the terminal background will be set to black and
|
||||
the foreground to the pseudo-random color. If set to light, then the
|
||||
foreground will be black and the background the pseudo-random color. If
|
||||
terminal_colorize is zero, then this option has no effect.
|
||||
|
||||
=item terminal_size = 80x24
|
||||
|
||||
Initial size of terminals to use. NOTE: the number of lines (24) will be
|
||||
decreased when resizing terminals for tiling, not the number of characters (80).
|
||||
|
||||
=item terminal_title_opt = -T
|
||||
|
||||
Option used with C<terminal> to set the title of the window
|
||||
|
||||
=item terminal_allow_send_events = -xrm '*.VT100.allowSendEvents:true'
|
||||
|
||||
Option required by the terminal to allow XSendEvents to be received
|
||||
|
||||
=item title = cssh
|
||||
|
||||
Title of windows to use for both the console and terminals.
|
||||
|
||||
=item unmap_on_redraw = no
|
||||
|
||||
Tell Tk to use the UnmapWindow request before redrawing terminal windows.
|
||||
This defaults to "no" as it causes some problems with the FVWM window
|
||||
manager. If you are experiencing problems with redraws, you can set it to
|
||||
"yes" to allow the window to be unmapped before it is repositioned.
|
||||
|
||||
=item use_all_a_records = no
|
||||
|
||||
If a hostname resolves to multiple IP addresses, set to C<yes> to connect
|
||||
to all of them, not just the first one found.
|
||||
|
||||
=item use_hotkeys = yes
|
||||
|
||||
Setting to anything other than C<yes> will disable all hotkeys.
|
||||
|
||||
=item user = $LOGNAME
|
||||
|
||||
Sets the default user for running commands on clients.
|
||||
|
||||
=item window_tiling = yes
|
||||
|
||||
Perform window tiling (set to C<no> to disable)
|
||||
|
||||
=item window_tiling_direction = right
|
||||
|
||||
Direction to tile windows, where "right" means starting top left and moving
|
||||
right and then down, and anything else means starting bottom right and moving
|
||||
left and then up
|
||||
|
||||
=back
|
||||
|
||||
B<NOTE:> The key shortcut modifiers must be in the form "Control", "Alt", or
|
||||
"Shift", i.e. with the first letter capitalised and the rest lower case. Keys
|
||||
may also be disabled individually by setting to the word "null".
|
||||
|
||||
=item F<$HOME/.csshrc_send_menu>
|
||||
|
||||
This (optional) file contains items to populate the send menu. The
|
||||
default entry could be written as:
|
||||
|
||||
<send_menu>
|
||||
<menu title="Use Macros">
|
||||
<toggle/>
|
||||
<accelerator>ALT-p</accelerator>
|
||||
</menu>
|
||||
<menu title="Remote Hostname">
|
||||
<command>%s</command>
|
||||
<accelerator>ALT-n</accelerator>
|
||||
</menu>
|
||||
<menu title="Local Hostname">
|
||||
<command>%s</command>
|
||||
<accelerator>ALT-l</accelerator>
|
||||
</menu>
|
||||
<menu title="Username">
|
||||
<command>%u</command>
|
||||
<accelerator>ALT-u</accelerator>
|
||||
</menu>
|
||||
<menu title="Test Text">
|
||||
<command>echo "ClusterSSH Version: %v%n</command>
|
||||
</menu>
|
||||
</send_menu>
|
||||
|
||||
Submenus can also be specified as follows:
|
||||
|
||||
<send_menu>
|
||||
<menu title="Default Entries">
|
||||
<detach>yes</detach>
|
||||
<menu title="Hostname">
|
||||
<command>%s</command>
|
||||
<accelerator>ALT-n</accelerator>
|
||||
</menu>
|
||||
</menu>
|
||||
</send_menu>
|
||||
|
||||
B<Caveats:>
|
||||
|
||||
=over 4
|
||||
|
||||
=item There is currently no strict format checking of this file.
|
||||
|
||||
=item The format of the file may change in the future
|
||||
|
||||
=item If the file exists, the default entry (Hostname) is not added
|
||||
|
||||
=back
|
||||
|
||||
The following replacement macros are available (note: these can be changed in the configuration file):
|
||||
|
||||
=over 4
|
||||
|
||||
=item %s
|
||||
|
||||
Hostname part of the specific connection string to each client, minus any
|
||||
username or port
|
||||
|
||||
=item %u
|
||||
|
||||
Username part of the connection string to each client
|
||||
|
||||
=item %h
|
||||
|
||||
Hostname of server where cssh is being run from
|
||||
|
||||
=item %n
|
||||
|
||||
<RETURN> code
|
||||
|
||||
=back
|
||||
|
||||
B<NOTE:> requires L<XML::Simple> to be installed
|
||||
|
||||
=back
|
||||
|
||||
=head1 KNOWN BUGS
|
||||
|
||||
=over 4
|
||||
|
||||
=item 1.
|
||||
|
||||
Catering for IPv6 addresses is minimal. This is due to a conflict
|
||||
between IPv6 addresses and port numbers within the same
|
||||
server definition since they both use the same separator, i.e. is the
|
||||
following just an IPv6 address, or an address + port number of 2323?
|
||||
|
||||
2001:db8::1428:2323
|
||||
|
||||
Exactly - I cannot tell either. The IPv6 address without a port is assumed
|
||||
in those cases where it cannot be determined and a warning is issued.
|
||||
|
||||
Possible workarounds include:
|
||||
|
||||
=over 4
|
||||
|
||||
=item a.
|
||||
|
||||
Use square brackets around the IPv6 address, i.e.
|
||||
[2001:db8::1428]:2323
|
||||
or
|
||||
[2001:db8::1428:2323]
|
||||
as appropriate so there is no ambiguity
|
||||
|
||||
=item b.
|
||||
|
||||
Use the full IPv6 address if also using a port number - the 8th colon
|
||||
is assumed to be the port separator.
|
||||
|
||||
=item c.
|
||||
|
||||
Define the IPv6 address in your /etc/hosts file, DNS or other name service
|
||||
lookup mechanism and use the hostname instead of the address.
|
||||
|
||||
=back
|
||||
|
||||
=item 2.
|
||||
|
||||
Swapping virtual desktops can cause a redraw of all the terminal windows. This
|
||||
is due to a lack of distinction within Tk between switching desktops and
|
||||
minimising/maximising windows. Until Tk can tell the difference between the
|
||||
two events, there is no fix (apart from rewriting everything directly in X)
|
||||
|
||||
=back
|
||||
|
||||
Anyone with any good ideas to fix the above bugs is more than welcome to get
|
||||
in touch and/or provide a patch.
|
||||
|
||||
=head1 REPORTING BUGS
|
||||
|
||||
=over 2
|
||||
|
||||
=item *
|
||||
|
||||
If you have issues running cssh, first try:
|
||||
|
||||
C<< cssh -e [user@]<hostname>[:port] >>
|
||||
|
||||
This performs two tests to confirm cssh is able to work properly with the
|
||||
settings provided within the F<$HOME/.clusterssh/config> file (or internal defaults).
|
||||
|
||||
1. Test the terminal window works with the options provided
|
||||
|
||||
2. Test ssh works to a host with the configured arguments
|
||||
|
||||
Configuration options to watch for in ssh are
|
||||
|
||||
- Doesn't understand "-o ConnectTimeout=10" - remove the option
|
||||
in the F<$HOME/.clusterssh/config> file
|
||||
|
||||
- OpenSSH-3.8 using untrusted ssh tunnels - use "-Y" instead of "-X"
|
||||
or use "ForwardX11Trusted yes' in ssh_config (if you change the
|
||||
default ssh options from -x to -X)
|
||||
|
||||
=item *
|
||||
|
||||
If you require support, please run the following commands
|
||||
and post it on the web site in the support/problems forum:
|
||||
|
||||
C<< perl -V >>
|
||||
|
||||
C<< perl -MTk -e 'print $Tk::VERSION,$/' >>
|
||||
|
||||
C<< perl -MX11::Protocol -e 'print $X11::Protocol::VERSION,$/' >>
|
||||
|
||||
C<< cat /etc/csshrc $HOME/.clusterssh/config >>
|
||||
|
||||
=item *
|
||||
|
||||
Using the debug switches (-d, -D, or -dD) will turn on debugging output.
|
||||
However, please only use this option with one host at a time,
|
||||
i.e. "cssh -d <host>" due to the amount of output produced (in both main
|
||||
and child windows).
|
||||
|
||||
=back
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<http://clusterssh.sourceforge.net/>,
|
||||
C<ssh>,
|
||||
L<Tk::overview>,
|
||||
L<X11::Protocol>,
|
||||
C<perl>
|
||||
|
||||
=head1 CREDITS
|
||||
|
||||
A web site for comments, requests, bug reports and bug fixes/patches is
|
||||
available at L<http://clusterssh.sourceforge.net/>
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Duncan Ferguson, C<< <duncan_j_ferguson at yahoo.co.uk> >>
|
||||
|
||||
=head1 LICENSE AND COPYRIGHT
|
||||
|
||||
Copyright 1999-2010 Duncan Ferguson.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of either: the GNU General Public License as published
|
||||
by the Free Software Foundation; or the Artistic License.
|
||||
|
||||
See http://dev.perl.org/licenses/ for more information.
|
||||
|
||||
=cut
|
||||
|
||||
1;
|
||||
|
|
Loading…
Add table
Reference in a new issue