+2

Extrato de Horas utilizando Radius e Radius Report

criado por Wagner Quedi Rosa em 05/02/2003 8:39pm
Terceiro Passo: Configurar o Radius Report

Na verdade não iremos configurar o Radius Report, mas sim, criar um script que faça com que o Radius Report leia o arquivo de log do Radius, interprete e crie o extrato de cada usuário conforme nossa necessidade.

Eu criei aqui no meu servidor um shell script chamado detail_rep, que está ilustrado abaixo:

conteúdo do detail_rep:
#!/bin/sh
## set -xv
## Executa RadiusReport!

## Recolhe a data atual para poder criar a pasta no /tarifas/extrato
REP=`date +"%m"`
MONTH=`date +"%Y%m"`

## Informe onde está o seu arquivo de log do radius 
DETAIL="/var/log/radacct/ras/detail"

## pasta onde será gerado os extratos
REPORT="/tarifas/extrato/$MONTH"

/bin/mkdir -p $REPORT
/tarifas/radiusrep/radrep -t -l all -f $DETAIL -d $REP -o $REPORT

## Esta sequência é usada para que o admistrador possa ter
## informações sobre os totais de acessos de cada usuário
## se nao forem necessárias pode ser excluidas
cd $REPORT
rm -f total_report
grep "Total Hours:" * > /tmp/total_report
cp -f /tmp/total_report total_report

Eu criei esse arquivo dentro do /bin/ mas pode ser criado dentro do /tarifas/radiusrep/. Depois de criado o arquivo, é necessário dar a permissão para execução, e para isso digite:

chmod 755 /bin/detail_rep

Nosso arquivo de geração de extratos está pronto. Para testar digite detail_rep (para quem salvou o arquivo dentro do /bin) e para quem salvou no /tarifas/radiusrep/ digite: /tarifas/radiusrep/./detail_rep

Se tudo estiver certo, será criado dentro do /tarifas/extrato/ uma pasta com o nome que será composto do ANO mais o MÊS atual, e dentro dela será criado um arquivo para cada usuário com o seu respectivo login.

Se algo saiu errado revise suas configurações.

Se foi criado a pasta e os arquivos com os extratos de cada usuário aí é só agendar na sua crontab o script para ser executado periodicamente (eu coloquei no meu servidor de 2 em 2 horas).

Para agendar a tarefa digite:

crontab -e

e insira a seguinte linha:

0 */2 * * * detail_rep

isso para quem salvou no /bin/, e para quem salvou no /tarifas/radiusrep insira a seguinte linha:

0 */2 * * * /tarifas/radiusrep/./detail_rep

Salve e pronto...

Bom... a parte que não tem nada haver com PHP já foi feita, agora tudo que será feito deste ponto em diante, será em PHP.

(Próxima Página :: Autenticando Usuários Via POP)

Comentários:

Mostrando 1 - 10 de 33 comentários
Viniciu Silva disse:
Ola pessoal, depois que migrei de sendmail para qmail, meu extrto nao funciona mais... alguem pode me dar alguma ajuda ???
23/03/2005 8:27pm (~20 anos atrás)

Iniciamos a migração de toda a base para o freeradius, incluindo o postfix junto.
06/08/2004 5:01pm (~20 anos atrás)

amigo .. meu radius ta programado para todo dia 1 ele rezetar o detail e guardar o antigo compactado .. acho que só isso resolveria o problema ..
14/06/2004 3:30pm (~20 anos atrás)

Tudo funciona bem, desde que o arquivo detail tenha logs do dia 1/jan a 31/12 do mesmo ano, senao mistura tudo. Isso se deve a problemas com o radiusreport que processa a opcao -d somente o mes e esquece do ano. A solucao seriam duas, alterar o script do radiusreport, mais dificil :) ou separar anualmente o arquivo detail.
01/05/2004 3:50pm (~20 anos atrás)

David Muniz disse:
Estou usando o script no COnecetiva 8 mas não consigo autenticar de jeito nehnhum.

26/12/2003 11:05am (~21 anos atrás)

Olá!
Por enquanto estou usando somente a primeira parte do artigo que não prescisa de PHP...
Numa parte do script eu presciso informar onde está o arquivo detail...
/var/log/radacct/ras/detail...
só que eu tenho três subdiretórios dentro do diretório radacct e consequentemente três arquivos detail... Como é que eu faço pra juntar, ou informar no script para que ele pegue as informações contidas nesses três arquivos????
Valeu!
Gumesson
05/12/2003 10:23am (~21 anos atrás)

amigo estarei disponibilizando esse sistema daqui uns dias aqui ... mas entre em contato comigo pelo mail webmaster@quedinet.com.br que te ajudo a modificar, pois preciso de informações de como é mostrado o numero do tel no seus arquivos de dados do extrato ...
23/04/2003 12:03pm (~21 anos atrás)

esse erro aparece pq não foi gerado os arquivos do extrato através do radrep ..
para gerar os arquivos de todos os meses verifique no comentario anterior ao seu que está descrito como proceder.. qualquer problema me avisa...
10/03/2003 12:36pm (~22 anos atrás)

use esse comando

#mkdir /tarifas/extrato/ANOMES

#tarifas/radiusrep/radrep -t -l all -f /local/do/seu/detail -d MES -o /tarifas/extrato/ANOMES

subistitua o ano e o mes pelo ano e mes que vc deseja ..

cara.. so que tem um probleminha se vc colocar o MES 02 ele vai gerar 02 de 2003 se vc colocar 04 ele gera 04 de 2002 (pois ainda nao passamos pelo mes 04 de 2003

ainda nao achei uma solução para gerar os meses de 01 de 2002 nem 02 2002 nem 03 2002

mas ja adianta um bocado ..

qualquer coisa é so falar..
05/03/2003 8:28pm (~22 anos atrás)

sobre como eliminar uma parte vc pode usar esse comando ..
<?
$login = "xxx@teste.com.br";
$dados = explode("@", $login);
echo $dados[0]; //aparecerá o login
echo $dados[1]; //aparecerá o dominio
?>

qualquer coisa me da um toque,.. fui ...
03/03/2003 7:19pm (~22 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)