Relatórios do Sarg por grupo

Publicado por Andre Luiz da Silva 11/09/2006

[ Hits: 6.893 ]

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 <[email protected]>
#
# 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 "[email protected]";
$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

Screenshot

Role-Playing Script

Monitor Process

Algoritmo de Euclides estendido em Perl

FileSystem Alert


  

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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts