mssh, mcmd

Tools for running multiple commands and ssh jobs in parallel, and easily collecting the result

Usage

mssh -r host01,host02,host03 "uname -r" -c


Usage: mssh [options]
    -r, --range RANGE                Requires a configured Range::Client. Use --hostlist if you do not use range
        --hostlist x,y,z             List of hostnames to execute on
    -f, --file FILE                  List of hostnames in a FILE use (/dev/stdin) for reading from stdin
    -m, --maxflight 50               How many subprocesses? 50 by default
    -t, --timeout 60                 How many seconds may each individual process take? 0 for no timeout
    -g, --global_timeout 600         How many seconds for the whole shebang 0 for no timeout
    -c, --collapse                   Collapse similar output 
    -v, --verbose                    verbose 
    -d, --debug                      Debug output

Installing

mssh is a rubygem: gem install mssh. http://rubygems.org/gems/mssh

BUGS/TODO

  • Optionally Incorporate stderr into -c, with $?
  • allow commandline manipulation of ssh args
  • factor out redundancy between bin/mssh and bin/mcmd (cli module?)
  • incorporate range / foundation lookup syntax for -r
  • json output mode
  • to-file output mode
  • lots of rough spots, not super slick yet
  • needs testing real bad. 0.1 release