Extrato de Horas utilizando Radius e Radius Report
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:
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:
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:
e insira a seguinte linha:
isso para quem salvou no /bin/, e para quem salvou no /tarifas/radiusrep insira a seguinte linha:
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)
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)
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)
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
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...
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..
#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 ...
<?
$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)