⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ifconfig.pm

📁 mysql+ha. 实现高可用性 http://code.google.com/p/mysql-master-master/
💻 PM
字号:
#-------------------------------------------------------sub CheckInterfaceIP($$$) {    my $if = shift;    my $ip = shift;    my $check_presence = shift;        my $ips;    if ($^O eq 'linux') {        $ips = `/sbin/ip addr show`;    } elsif ($^O eq 'solaris') {        $ips = `/usr/sbin/ifconfig -a | grep inet`;    } else {        print "ERROR: Unsupported platform!\n";        exit(1);    }    my $present = ($ips =~ /$ip/) ? 1 : 0;    if ($check_presence == $present) {        print "OK: IP address presence check result is '$present'\n";        exit(0);    }}#-------------------------------------------------------sub ClearInterfaceIP($$) {    my $if = shift;    my $ip = shift;        if ($^O eq 'linux') {        `/sbin/ip addr del $ip/32 dev $if`;    } elsif ($^O eq 'solaris') {        `/usr/sbin/ifconfig $if removeif $ip`;    } else {        print "ERROR: Unsupported platform!\n";        exit(1);    }}#-------------------------------------------------------sub AddInterfaceIP($$) {    my $if = shift;    my $ip = shift;        if ($^O eq 'linux') {        `/sbin/ip addr add $ip/32 dev $if`;    } elsif ($^O eq 'solaris') {        `/usr/sbin/ifconfig $if addif $ip`;        my $logical_if = FindSolarisIF($ip);        unless ($logical_if) {            print "ERROR: Can't find logical interface with IP = $ip\n";            exit(1);        }        `/usr/sbin/ifconfig $logical_if up`;    } else {        print "ERROR: Unsupported platform!\n";        exit(1);    }}#---------------------------------------------------------------------------------sub FindSolarisIF {    my $ip = shift;    my $ifconfig = `/usr/sbin/ifconfig -a`;    $ifconfig =~ s/\n/ /g;    while ($ifconfig =~ s/([a-z0-9\:]+)(\:\s+.*?)inet\s*([0-9\.]+)//) {        return $1 if ($3 eq $ip);    }    return undef;}#-------------------------------------------------------sub SendArpNotification($$) {    my $if = shift;    my $ip = shift;    my $if_bcast;        my $if_mask;           if ($^O eq 'linux') {        # Get params for send_arp        my $ipaddr = `/sbin/ifconfig $if`;        # Get broadcast address and netmask        $ipaddr =~ /Bcast:\s*([\d\.]+)\s*Mask:\s*([\d\.]+)/i;        $if_bcast = $1;        $if_mask = $2;    } elsif ($^O eq 'solaris') {        # Get params for send_arp        my $ipaddr = `/usr/sbin/ifconfig $if`;        # Get broadcast address and netmask        $ipaddr =~ /netmask\s*([0-9a-f]+)\s*broadcast\s*([\d\.]+)/i;        $if_bcast = $1;        $if_mask = $2;    } else {        print "ERROR: Unsupported platform!\n";        exit(1);    }    `$SELF_DIR/bin/sys/send_arp -i 100 -r 5 -p /tmp/send_arp $if $ip auto $if_bcast $if_mask`;}1;

⌨️ 快捷键说明

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