interfaces2ifcfg.pl

来自「This a good VPN source」· PL 代码 · 共 62 行

PL
62
字号
#!/usr/bin/perl$interfaces=$ARGV[0];$networkscriptdir=$ARGV[1];open(INTERFACES,"$interfaces") || die "interfaces: $interfaces $!\n";chdir($networkscriptdir) || die "Can not chdir to $networkscriptdir: $!\n";$stanza=0;while(<INTERFACES>) {  next if (/^\#/);  chop;  if($stanza) {    if(/^\s*address\s*([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)/) {      print IFCFG "IPADDR=$1\n";      next;    } elsif(/^\s*network\s*([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)/) {      print IFCFG "NETMASK=$1\n";      next;    } elsif(/^\s*netmask\s*([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)/) {      print IFCFG "NETMASK=$1\n";      next;    } elsif(/^\s*broadcast\s*([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)/) {      print IFCFG "BROADCAST=$1\n";      next;    } elsif(/^\s*gateway\s*([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)/) {      print IFCFG "GATEWAY=$1\n";      print IFCFG "GATEWAYDEV=$device\n";    } elsif(/^\s*up\s*route\s*add\s*-(.*)/) {      open(STATICROUTES, ">>../static-routes") || die "can not open ../static-routes: $!\n";      print STATICROUTES "$device $1\n";      close(STATICROUTES);    } elsif(/iface/) {      close(IFCFG);      $stanza=0;    } elsif(/^$/) {      close(IFCFG);      $stanza=0;      next;    } else {      print STDERR "ignoring command $_\n";    }  }  if(!$stanza) {    #print "Processing $_\n";    if(/\s*iface (.*) inet static/) {      $device=$1;      $stanza=1;      open(IFCFG, ">ifcfg-$device") || die "Can not open ifcfg-$device: $!\n";      print IFCFG "ONBOOT=yes\n";    }  }}          

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?