複数のサーバーに導入されているモジュールが同じかチェックするスクリプト
複数のサーバーに導入されているモジュールが同じかチェックするスクリプトを書いてみた。といっても
だけですが。
#!/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のが違うなー。