From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.2.5 From: Sergey To: sysadmins@lists.altlinux.org Date: Mon, 18 Nov 2013 11:58:38 +0400 User-Agent: KMail/1.9.10 (enterprise35 0.20100827.1168748) References: <201310251556.25452.a_s_y@sama.ru> <201310252217.32402.a_s_y@sama.ru> <201310261155.10277.a_s_y@sama.ru> In-Reply-To: <201310261155.10277.a_s_y@sama.ru> X-KMail-QuotePrefix: > MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_uiciSr0B66Cyw3Q" Message-Id: <201311181158.38395.a_s_y@sama.ru> Subject: Re: [Sysadmins] =?koi8-r?b?T3BlblZaLCDQxdLFxdrEIGJydW5jaCA1LjEgLT4g?= =?koi8-r?b?cDcsINDSz8LMxc3BINMgxM/T1NXQz80gyyBWUFM=?= X-BeenThere: sysadmins@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux sysadmins' discussion List-Id: ALT Linux sysadmins' discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Nov 2013 07:58:55 -0000 Archived-At: List-Archive: --Boundary-00=_uiciSr0B66Cyw3Q Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit Content-Disposition: inline On Saturday 26 October 2013, Sergey wrote: > Дальше копаться времени нет, сделал временную затычку пока, > которую надо на cron вешать. Если же в vzctl эту возможность > совсем сломали, надо будет тогда её доработать. Она сейчас на > помеси awk/grep/perl, да, ещё, без поиска ethernet-интерфейсов. Немного доделано. В предыдущем варианте не была учтена возможность наличия нескольких IP в контейнере. В этом варианте тут, тоже, есть ограничение: "IP_ADDRESS=" требуется на каждый IP, запись в одну строку через пробел скриптом не обрабатывается. Так же, предполагается использование только "": IP_ADDRESS="192.168.1.1" IP_ADDRESS="192.168.1.2" -- С уважением, Сергей a_s_y@sama.ru --Boundary-00=_uiciSr0B66Cyw3Q Content-Type: application/x-perl; name="vzarpset.pl" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="vzarpset.pl" #!/usr/bin/perl use Sys::Syslog; use constant ScriptName => "vzarpset"; use constant SysLogFacility => "local4"; use constant SysLogPriority => "info"; @arplist=`arp -vn|egrep "\\\*[[:space:]]*\\\*[[:space:]]*MP"|awk '{print(\$1);}'`; @veiplist=`vzlist| awk '{print(\$1);}'|egrep '^[0-9]*\$' | \ while read CTID; do \ cat /etc/vz/conf/\$CTID.conf | grep IP_ADDRESS | sed 's/.*="\\(.*\\)"/\\1/' ; \ done`; my %arphash; my %veiphash; my %arpadd; my %arprm; foreach $ip (@arplist ) { $arphash{$ip} = 1 } foreach $ip (@veiplist) { $veiphash{$ip} = 1; if (! $arphash{$ip}) {$arpadd{$ip} = 1} } foreach $ip (@arplist) { if (! $veiphash{$ip}) {$arprm{$ip} = 1} } @arpadd = keys %arpadd; @arprm = keys %arprm; foreach $ip (@arpadd) { chomp($ip); openlog(ScriptName . "[$$]", "ndelay", SysLogFacility); syslog(SysLogPriority, "arp -s " . $ip . " 0:0:0:0:0:0 -i ether0 pub"); closelog; system "arp -s " . $ip . " 0:0:0:0:0:0 -i ether0 pub"; } foreach $ip (@arprm) { chomp($ip); openlog(ScriptName . "[$$]", "ndelay", SysLogFacility); syslog(SysLogPriority, "arp -d " . $ip . " -i ether0"); closelog; system "arp -d " . $ip . " -i ether0"; } --Boundary-00=_uiciSr0B66Cyw3Q--