Relatórios do Sarg por grupo

Publicado por Andre Luiz da Silva 11/09/2006

[ Hits: 7.282 ]

Homepage: http://localhost

Download sarg-by-group.pl




Separa os relatorios do Sarg por posixGroup de uma base LDAP

  



Esconder código-fonte

#!/usr/bin/perl

# sarg-by-group.pl - Separa os relatorios do Sarg por posixGroup
#                    utilizando uma base LDAP
#
# Desenvolvido por: Andre Luiz da Silva <andrack@gmail.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version
# 2 of the License, or (at your option) any later version.

use Net::LDAP;

$ldap = Net::LDAP->new("arquivos.sarg.inf.br") or die "$@";
$ldap->bind("dc=relatorios,dc=inf,dc=br");

$output_dir = "/srv/www/htdocs/squid-reports/";
$input_log = "/var/log/squid/access.log";
$sarg_bin = "/usr/bin/sarg";
$debug = "-z -x";       # Opcoes de debug do Sarg

$groups = $ldap->search(filter=>"(&(cn=*)(objectclass=posixgroup))", base=>"dc=relatorios,dc=inf,dc=br");

# Carrega o array com todos os grupos da base LDAP
@entries = $groups->entries;

# Para cada grupo, faca...
foreach $entry (@entries) {
        $group = $entry->get_value("cn");

        chdir ($output_dir);
        if ( ! -d $group ) {            # Cria o diretorio, caso ele nao exista
                print "Criando diretorio: $group \n";
                mkdir ("$group");
        }

        @members = $entry->get_value("memberUid"); # Carrega o array com os membros do grupo

        # Para cada usuario, faca...
        foreach $member (@members) {
                print "Gerando relatorio do usuario: [$member]\n";
                # Executa o Sarg passando o parametro '-u' para cada membro do grupo
                system ("$sarg_bin -f /etc/sarg.conf -u $member -l $input_log -o $output_dir/$group");
        }
}

Scripts recomendados

Índice (Logaritmo Discreto) em Perl

Mega Sena

Wallpaper no Fluxbox

randmusic.pl

Weather Channel for Torsmo


  

Comentários
[1] Comentário enviado por jacquesteixeira em 09/07/2011 - 13:11h

tem como fazer por uma base do active directory, pois tenho meu squid autenticando pelo active directory


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts