pssh-exec
v1.0.0
Published
Execute a script over ssh in parallel using Node.js and pipe to and/or from all sessions at once, or individual sessions. Inspired by `pssh(1)`
Downloads
3
Readme
pssh-exec
Execute a script over ssh in parallel using Node.js and pipe to and/or from all
sessions at once, or individual sessions. Inspired by pssh(1)
Installation
npm install pssh-exec
Example
var pssh = require('pssh-exec')
var hosts = [{host: '127.0.0.1'}, {host: '192.168.1.1'}]
// Will default to the ~/.ssh/id_rsa.pem as per `ssh-exec`
var opts = {username: 'root'}
var sessions = pssh('cat -', hosts, opts, function (err) {
if (err) {
console.error(err)
process.exit(1)
}
process.exit(0)
})
process.stdin.pipe(sessions).pipe(process.stdout)
Documentation
This is a high-level wrapper around ssh-exec
and multi-duplex-stream
.
Of notice is .add(stream)
, .remove(stream)
, .destroy([err])
and
the constructor:
psshExec(cmd, hosts, [options], [cb])
cmd
- The command to execute on each machinehosts
- An array of hosts objects like the ones defined byssh-exec
. Can be as specific or general as needed to override the defaults defined byssh-exec
, and can override theoptions
objectoptions
- Optional, defines the commonalities between the hosts. Thehosts
objects have higher specificitycb
- Optional,callback(err)
called when themulti-duplex-stream
completes or fails.