Group Shell 0.3.1

Group Shell is a tool to aggregate several remote shells into one.
Group 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.

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.

last updated on:
November 23rd, 2010, 19:41 GMT
price:
FREE!
developed by:
Guillaume Chazarain
homepage:
guichaz.free.fr
license type:
GPL (GNU General Public License) 
category:
ROOT \ System \ Shells

FREE!

In a hurry? Add it to your Download Basket!

user rating 18

4.0/5
 

0/5

Rate it!
1 Screenshot
Group Shell
What's New in This Release:
  • If the :{en|dis}able command would have no effect, it changes all other shells to the inverse enable value.
  • Consistently add a space between the shell name and the colon to ease parsing the output.
  • The gsh exit code is aggregated from all remote shells taking the max.
  • :export_rank has been renamed to :export_vars as it now also exports the hostname.
read full changelog

Add your review!

SUBMIT