среда, 1 февраля 2012 г.

Массовый рестарт сессий mpd

Биллинг у меня, по непонятной причине, перестал рвать соединения клиентов в 00-00 первого числа каждого месяца.
Странно, но привычно. То одно отпадет то другое. Везет мне с биллингами всю мою жизнь.

Помня что перезапуск процесса mpd бывает приводит к зависшим netgraph нодам -  что как то не аккуратненько, захотелось тупо сделать close на каждую сессию.

За пару минут вот такой вот скриптик перла родился:

use Net::Telnet ();      
                                                                                                                                                                                                                  my $t = new Net::Telnet(Host => $hostname,                                                                               
        Port => $port,                                                                                                   
        Binmode => '\015\012',                                                                                           
        Prompt => '/\[.*\]/',                                                                                            
        Timeout => 10);                                                                                                  
$t->login($login, $pass);                                        
foreach($t->cmd("show sessions"){                                                                                                         
    my @attr=split /\s/;                                                                                                 
    my $iface=$attr[0];                                                                                                  
    $t->cmd("iface ". $iface);                                                                                           
    $t->cmd("close");                                                                                                    
    print "$iface closed \n";                                                                                            
}              

Тупо, но просто.