Descrição
Separa os relatorios do Sarg por posixGroup de uma base LDAP
[ Download:
sarg-by-group.pl ]
[
Enviar nova versão ]
[ 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
Mega Sena
Configurar ADB no linux
Tirando screenshots facilmente !
Muda o wallpaper do X-Windows
Diminuir ou aumentar o brilho de notebook
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