Полезное:


Главная / How-To / SysAdmin / UTM5 -> chap-secrets
UTM5 -> chap-secrets

Этот скрипт на perl выгружает пользователей из базы данных биллинговой системы UTM5 и создает файл chap-secrets для сервера pppd
Так же обновляются соответствия IP адресов с именами пользователей для генератора отчетности SARG для логов SQUID
#!/usr/bin/perl
# This script gets NetUp users and updates /etc/ppp/chap-secrets and /var/www/sarg/usertab files

use DBI;

$USER = "utm5";
$DB = "UTM5";
$PASSWD = "xxxx";
$chap_secrets = "/etc/ppp/chap-secrets";
$usertab = "/etc/squid/sarg/usertab";


$dbh = DBI->connect("dbi:mysql:$DB", $USER, $PASSWD) or die $DBI::errstr;

$sth = $dbh->prepare("select distinct(u.login) as login, u.password as password, inet_ntoa(ig.ip&0xffffffff) as ip\
 from users u, ip_groups ig,iptraffic_service_links il,accounts a,service_links sl\
 where il.id=sl.id and il.ip_group_id=ig.ip_group_id and sl.is_deleted=0 and\
 a.is_deleted=0 and ig.is_deleted=0 and u.id=sl.user_id");
$sth->execute or die ("Cannot select from database");
$i = $sth->rows;

if ($i) {
  open fcs, ">$chap_secrets";
  open fut, ">$usertab";
  while ($i--){
    $user = $sth->fetchrow_hashref;
    if ($is_exist{$user->{login}}++) {
      $user->{login} .= "-".$is_exist{$user->{login}};
      }
    print fcs "$user->{login} * $user->{password} $user->{ip}\n";
    print fut "$user->{ip} $user->{login}\n";
    }
  close fut;
  close fcs;
  }

$sth->finish;

Добавлено: 2008/07/17
Обновлено: 2008/08/09

Навигация
Обо мне | Портфолио | How-To | Мои ссылки | Фотоальбом | Смешно! | Контакты Адрес: Россия, Владивосток
Тел.: +7 (4232) 51-84-81