RubyスクリプトからSSHコマンドを実行してみる

ブログの更新がずいぶんしてなかったのですが、
最近ようやくやる気も徐々に出てきて、何かやろうかなぁと思って、
Rubyを使ってリモート操作したいなぁと思い立ってとりあえずSSHコマンドを叩いてみることにしました。

まずは、インストールから

 % jruby -S gem install net-ssh

ここで注意で、依存関係の問題から次が自動でインストールされないので、一緒にインストールします。

 % jruby -S gem install jruby-pageant

LoadError: no such file to load --jruby_pageant
のようなメッセージが出たら、上記のインストールが足りていないと思われます。


準備が整いました。
では、SSHコマンドを叩くhello worldプログラムを動かしてみます。

Net::SSH.start('ホスト名', 'ユーザ名', :password => 'パスワード') do |ssh|
  puts ssh.exec!('ls ~')
end

実行したらちゃんとlsコマンドが動きました。
これは、いろいろと応用ができそうです。