classh is yet another wrapper around ssh for running commands on a number of hosts concurrently. It is similar to xCAT, pssh, Cluster ssh, and a gaggle of other utilities. The only pre-requisite for classh is Python 2.4 or later, and no formal installation is required; a copy of the classh.py file is sufficient to run commands. The SSHJobMan class from classh can be used to create custom job management scripts. This class lets you either wait until all output has returned from a batch job or process the results as they become available by incrementally polling the running job. The output, error messages, exit code, and start and completion times of each job are stored in the results. It's been tested on jobs of over 25,000 hosts and handles over 10,000 hosts per hour across a WAN and without noticeable impact on the administrator's host.
|Tags||Utilities System Administration Clustering Tools Clustering/Distributed Networks Libraries|
|Operating Systems||Linux Unix Mac OS X|
Release Notes: The --sshargs and --sshpath options were added. The default was changed to search the PATH for ssh.
Release Notes: --mergemsgs support was added. It coalesces identical outputs and/or error messages. Support for --progress was added for showing successes, remote errors, and local/SSH errors as they occur in a progress bar. Snooze default handling was fixed in the .wait() method (API).
Release Notes: Incremental results or a progress bar are supported. Custom job management scripts can be written in as little as 3 lines. Hostname arguments support magic files and range expansions. The timeouts and maximum concurrent jobs are configurable.