Dies Aliquanti

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SSHをRubyで使う

連休の谷間を有休でうめたので、結構長い休みでしたが、それも今日で終わり。ず~っと部屋の片づけをしていたので、家内の不興を買うことになってしまった。


それはともかく、前にも書いたように、我が家のHauppauge HD-PVRの録画システムは、キャプチャそのものは、linuxで動くが、EPGやタイマー制御はWindowsXPという、サイコーにイケてる仕様で、この場合Windows→linuxの制御をなんとかしなければいけないわけです。

いままで、Windowsで動作する、sshクライアントとしてTeratermのマクロ機能版(ttpmacro)を使っていたのですが、これが(私には)いまいち。
マクロ言語を覚えるのがめんどー。所詮マクロなのでたいした量ではないが、オヤジには面倒。あと、時々プロセスがzonbi化し、CPUパワーを100%使う状態になってしまう。作者の方にはリポートしたいと思うのだが、まれな現象で、再現できていないのでどうししようもない状態。

で、前置きが長いが、「ひょっとしてRubyで使えるsshクライアント(のライブラリ)ってないのか?」と、思って探してみたら、あるんですねー、やっぱり。Ruby猿の私にはうれしい。

このページを参考に、まずライブラリをインストールします。Windowsのコマンドプロンプトから、

 

gem install net-ssh

 

で一発。

早速、先のページのサンプルを動かします。

 D:\Devel\ruby_ssh>ruby ssh_test.rb
HDPVR_REC
examples.desktop
繝?繧ヲ繝ウ繝ュ繝シ繝・
繝・Φ繝励Ξ繝シ繝・
繝・せ繧ッ繝医ャ繝・
繝峨く繝・繝。繝ウ繝・
繝薙ョ繧ェ
繝斐け繝√Ε
繝溘Η繝シ繧ク繝・け
蜈ャ髢・

orz... 漢字コードか…kconvをrequireして、結果をSJISに変換して、っと。

D:\Devel\ruby_ssh>ruby ssh_test.rb
HDPVR_REC
examples.desktop
ダウンロード
テンプレート
デスクトップ
ドキュメント
ビデオ
ピクチャ
ミュージック
公開

今度はうまくいきました。やりたいことは、linuxにログインして、コマンドを一発出すだけなので、これでできたも同然。このままだとパスワードを平文で扱わないといけないのが、ちと気になりますが、まあ家庭内LAN限定なのでよしとしましょう。ちなみに、先のページには公開鍵での認証のやり方もかいてあります。


// Original at http://webos-goodies.jp/archives/51357031.html 
require 'rubygems'
require 'net/ssh'
require 'kconv'
Net::SSH.start('host', 'user', :password => 'password') do |ssh|
print(Kconv.tosjis(ssh.exec!('ls ~')))
end

 

 



コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://diesaliquanti.blog.fc2.com/tb.php/762-0e1a797d
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

まとめ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。