Seasons.NET

ちょっとした技術ブログです

/etc/sysconfig/network 切り替えスクリプト

自宅と会社のゲートウェイが異なる環境で
ブリッジ接続する場合、ゲートウェイを切り替えるスクリプトが
あると便利ってことで作りました。

 1 #!/usr/bin/ruby
 2 require 'fileutils'
 3 
 4 # ================================
 5 # Network Gateway Change Tool
 6 #
 7 # Usage: network.rb home2|home
 8 #
 9 # Gatewayのアドレスを書き換えて、networkを再起動します。
10 # ================================
11 
12 FilePath = '/etc/sysconfig/network'
13 HOMEGATEWAY  = "192.168.0.1"
14 HOME2GATEWAY = "192.168.1.1"
15 
16 if __FILE__ == $0
17   exit 0 unless ARGV.size == 1
18   type = ARGV.shift.dup
19   gateway = nil
20   case type
21   when "home2"
22     gateway = HOME2GATEWAY
23     p "Setup Home2 gateway"
24   when "home"
25     gateway = HOMEGATEWAY
26     p "Setup Home gateway"
27   end
28   exit 0 if gateway == nil
29 
30   tmpfile = FilePath + ".tmp"
31   open( tmpfile , "w" ) do |out|
32     open( FilePath , "r" ) do |f|
33       f.each_line do |line|
34         line = $1 + gateway + "\n" if line =~ /^(GATEWAY=)([\d\.]+)/
35         out.print line
36       end
37     end
38   end
39   FileUtils.rm( FilePath )
40   FileUtils.mv( tmpfile , FilePath )
41   %x{/etc/rc.d/init.d/network restart}
42 end