Net::Ssh::Script
Helps to run commands & scripts over Net::SSH session on remote machines. It can run a single command and whole script and log status/stdout/stderr of each command.
Installation
Add this line to your application's Gemfile:
gem 'net-ssh-script'
And then execute:
$ bundle
Or install it yourself as:
$ gem install net-ssh-script
Usage
First, require module and create SSH session:
require 'net/ssh/script'
Net::SSH.start( '...' ) do |ssh|
# insert code below here...
end
Single command
# Define a command
cmd = Net::SSH::Script::Command['ls']
# it is the same as
cmd = Net::SSH::Script::Command.new('ls')
cmd.to_s
# => "ls"
cmd.inspect
# => "pending:ls"
cmd.done?
# => false
cmd.status
# => :pending
cmd.run ssh
# => true/false
cmd.done?
# => true
cmd.status
# => :failed/:error/:ok
cmd.ok? # => true/false
cmd.error? # => true/false
cmd.failed? # => true/false
cmd.pending? # => true/false
cmd.inspect
# => multiline string:
# ok:ls
# Output:
# <a list of files>
# when command returns error
cmd.inspect
# => multiline string:
# error:ls
# Error:
# <error returned by command>
Scripts
script = Net::SSH::Script::Script[[
'cd /tmp',
'ls -l',
'cd -'
]]
script.run ssh
# => true/false
cmd.running? # => true/false
script.done?
# => true/false
script.ok? # => true/false
script.error? # => true/false
script.failed? # => true/false
script.pending? # => true/false
script.inspect
# => multiline string:
# ok:cd /tmp
# Output:
# error:ls -l
# Error:
# 'an error of ls -l command'
# pending:cd -
Development
After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/indiesoft/net-ssh-script.
License
The gem is available as open source under the terms of the MIT License.