Group Shell is a tool to aggregate several remote shells into one.
Version: 0.3Group Shell is a tool to aggregate several remote shells into one. It is used to launch an interactive remote shell on many machines at once. Group Shell is written in Python and requires Python ≥ 2.4.
License: GPL
Operating System: Linux
Homepage: guichaz.free.fr
Developed by:
There is a control shell accessible with Ctrl-C that is used to list some information about the current remote shells. It also allows common terminal manipulations like sending a Ctrl-C, Ctrl-Z, Ctrl-D …
The prompt shows the number of listening shells and the number of active shell. A shell is said to be listening if its prompt has returned and it is accepting commands, active shells are those whose connection is still alive. Shells can be individually enabled and disabled.
Here is the transcript of a sample session:
[g ~/gsh]$ ./gsh.py machine{0-9}
[10/10]> date
machine4: ven nov 10 23:26:36 CET 2006
machine7: ven nov 10 23:26:36 CET 2006
machine3: ven nov 10 23:26:36 CET 2006
machine5: ven nov 10 23:26:36 CET 2006
machine9: ven nov 10 23:26:36 CET 2006
machine0: ven nov 10 23:26:36 CET 2006
machine2: ven nov 10 23:26:36 CET 2006
machine1: ven nov 10 23:26:37 CET 2006
machine6: ven nov 10 23:26:37 CET 2006
machine8: ven nov 10 23:26:37 CET 2006
[10/10]>
Now, Ctrl-C is pressed, it triggers the control shell.
(Cmd) help
Documented commands (type help < topic >):
EOF enable list send_eof set_print_first
continue get_print_first quit send_sigint unset_print_first
disable help reconnect send_sigtstp
(Cmd) list
machine0 fd:3 r:3 w:0 active:True enabled:True idle
machine1 fd:4 r:3 w:0 active:True enabled:True idle
machine2 fd:5 r:3 w:0 active:True enabled:True idle
machine3 fd:6 r:3 w:0 active:True enabled:True idle
machine4 fd:7 r:3 w:0 active:True enabled:True idle
machine5 fd:8 r:3 w:0 active:True enabled:True idle
machine6 fd:9 r:3 w:0 active:True enabled:True idle
machine7 fd:10 r:3 w:0 active:True enabled:True idle
machine8 fd:11 r:3 w:0 active:True enabled:True idle
machine9 fd:12 r:3 w:0 active:True enabled:True idle
10 active shells, 0 dead shells, total: 10
(Cmd) quit
[g ~/gsh]$
Requirements:
· Python ≥ 2.4
What's New in This Release:
· Some command line options were removed and some added.
· The control shell is replaced with colon-prefixed commands.
· The prompt uses readline even when not all remote shells are ready.
· Ctrl-C, Ctrl-D, and Ctrl-Z sent to gsh are forwarded to the remote shells.
· Shell commands prefixed by an exclamation mark are run locally.
· Some control commands have been added as well as support for file transfer.
· Common SSH key problems are detected and some help is printed.
· There is a new completion mechanism from the local filesystem.