感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

RubyでSSH,telnet,バッチ実行、メッセージ出力など。

スポンサーリンク

Rubyでポップアップを表示する

require 'win32ole'

def popup(msg, title)
  wsh = WIN32OLE.new('WScript.Shell')
  wsh.Popup(msg, 0, title, 0 + 64 + 0x40000)
end

popup("ポップアップです", "注意")

・Rubyからバッチファイルを実行する
test.bat

echo "test"

上記のtest.batというバッチファイルをRubyから呼び出してみる(実行してみる)
invoke.rb

exec("test.bat")

このrubyを実行すると。。。

>ruby invoke.rb

"test"

と、バッチで実行した中の内容が表示される。

・RubyでSSHを実行する。

gem list net-ssh

でnet-sshがインストールされていること

gem search --remote ssh

で検索。

net-sshが見つかったらインストールする。

gem install --remote net-ssh

RubyでSSH(まだちゃんと稼働確認してないです)

require 'rubygems'
require 'net/ssh'

domain = 'example.com' #ここにIPアドレスかドメイン名を入れる
Net::SSH.start( domain, :username =>'leonardr',
			 :password => 'mypass', :verbose => :debug)  do |session|
	shell = session.shell.sync
	puts "Original working directory: #{shell.pwd.stdout}"
	shell.cd 'test_dir'
	puts "Working directory now: #{shell.pwd.stdout}"
	puts 'Directory contents:'
	puts shell.ls("-1").stdout
	shell.exit
end

Rubyでtelnetのテスト

require 'net/telnet'

webserver = Net::Telnet::new('Host' => 'www.oreilly.com',
	'Port' => 80,
	'Telnetmode' => false)
	
size = 0
webserver.cmd("GET / HTTP/1.1\nHost: www.oreilly.com\n") do |c|
	size += c.size
	puts "Read #{c.size} bytes; total #{size}"
end

色々と調べてみて思ったのは、ちょっとしたツールを作るなら、
Javaを使ったりするよりもRubyの方がダントツで便利だということ。

Linux上での対話的な操作を実現するために

expect
http://www.uetyi.mydns.jp/wordpress/command/entry-158.html

を使ったりしたけど、
同じことがRubyでもっと簡単に、もっと便利に実現できてしまう。はずだ。

なんとなく感じがつかめたので、明日出社したときに早速ツールを作成してみたい。

Rubyクックブック ―エキスパートのための応用レシピ集

Rubyクックブック ―エキスパートのための応用レシピ集

  • 作者: Lucas Carlson,Leonard Richardson,株式会社クイープ
  • 出版社/メーカー: オライリー・ジャパン
  • 発売日: 2007/04/27
  • メディア: 大型本
  • 購入: 1人 クリック: 73回
  • この商品を含むブログ (55件) を見る