読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

複数のサーバーに導入されているモジュールが同じかチェックするスクリプト

Ruby

複数のサーバーに導入されているモジュールが同じかチェックするスクリプトを書いてみた。といっても

  • net/ssh」でssh接続し、
  • 「md5sum」を実行してダイジェストを表示する

だけですが。

#!/usr/bin/ruby

require 'rubygems'
require 'net/ssh'

SERVER = Struct.new( :host, :user, :pass )
def exec( server, commands )
  Net::SSH.start( server.host, server.user, server.pass ) {|session|
    shell = session.shell.sync
    commands.split(/\n/).each {|c|
      next if c.length <= 0
      puts shell.send_command(c).stdout
    }
  }
end

# 接続先サーバーのホスト名とユーザー/パスワードを並べる。
servers = [
  SERVER.new( "foo", "foo", "foo" ),
  SERVER.new( "var", "foo", "foo" ),
  SERVER.new( "bar", "foo", "foo" )
]
servers.each {|s|
  puts s.host
  exec( s, "md5sum /etc/httpd/conf.d/mod_jk.conf" )
  puts ""
}

実行結果です。

foo
443b13e0ce45ca79a7d933af9b8f7e6f  /etc/httpd/conf.d/mod_jk.conf

var
8acc36ddbdf47f713d5e60e092a28052  /etc/httpd/conf.d/mod_jk.conf

bar
443b13e0ce45ca79a7d933af9b8f7e6f  /etc/httpd/conf.d/mod_jk.conf

おっと、varのが違うなー。