Skip to content

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)`

License

Notifications You must be signed in to change notification settings

emilbayes/pssh-exec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 machine
  • hosts - An array of hosts objects like the ones defined by ssh-exec. Can be as specific or general as needed to override the defaults defined by ssh-exec, and can override the options object
  • options - Optional, defines the commonalities between the hosts. The hosts objects have higher specificity
  • cb - Optional, callback(err) called when the multi-duplex-stream completes or fails.

License

MIT

About

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)`

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published