Relatórios do Sarg por grupo

Publicado por Andre Luiz da Silva 11/09/2006

[ Hits: 7.702 ]

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

Algoritmo de Euclides estendido em Perl

Randomize MP3

Testando a agilidade do sistema de arquivos

Monitor Process

Tirando screenshots facilmente !


  

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