Boa noite Pedro.
Existe algum comando que eu possa usar em um script
para que o mk-auth reenvie para todos os meus ramais
a lista de clientes que estão em atraso para o address-list dos mikrotiks?
queria fazer esse script e por no crontab.
Eu percebi q tem alguns dos ramais que não estão atualizado a address-list
e quero gerenciar isso manualmente. tipo nas rbs ponho um script para apagar toda a lista
e no mk-auth um script para reenviar os ips dos clientes para todos os ramais,
de 6 em 6 horas.
Respostas
preciso desabilitar O TLS mas na versão que estou, nao está aceitando clicar em NAO
tem algum comando via console para mudar o TLS de sim para Nao?
Bom, eu consegui fazer o bendito script.
Ele captura todos os clientes com parcelas vencidas em um arquivo chamado atrasados.txt
Em cada iteração do comando while ele le o arquivo e adiciona em 3 variáveis o conteúdo de cada linha
e envia o comando para address-list por ssh do ramal do cliente.
Ta aí o comando:
################################
#!/bin/bash
mysql -pvertrigo -D mkradius -e "select a.login, b.ip, b.ramal from sis_lanc a, sis_cliente b where a.login = b.login and status <> 'pago' AND (datavenc > DATE_SUB(NOW(), INTERVAL 6 DAY) and datavenc < DATE_SUB(NOW(), INTERVAL 1 DAY)) order by login;" > atrasados.txt
while read Linha; do
login=`echo $Linha | cut -d" " -f1`
ip=`echo $Linha | cut -d" " -f2`
ramal=`echo $Linha | cut -d" " -f3`
echo Inserindo $login no addresslist do ramal $ramal
ssh -n mkauth@$ramal /ip firewall address-list add address=$ip comment=$login list=pgaviso
done < /home/backupjmnet/atrasados.txt
####################################################
Comentem depois.
Pesquisando muito eu consegui o comando abaixo para executar direto no console do mk-auth.
ele cruza dados de 2 tabelas, a sis_cliente e sis_lanc.
e imprime na tela a lista de clientes que tem parcelas em atraso acima de 1 dia
mostrando login , ip_do_cliente, ramal_do_cliente.
A idéia agora eh armazenar isso em algum lugar e enviar essa lista para o address list
do mikrotik em seu respectivo ramal por shellscript do Linux.
Ai abaixo vai o comando:
mysql> select a.login, b.ip, b.ramal from sis_lanc a, sis_cliente b where a.login = b.login and status <> 'pago' AND (datavenc > DATE_SUB(NOW(), INTERVAL 6 DAY) and datavenc < DATE_SUB(NOW(), INTERVAL 1 DAY)) order by login;
Estou tentando gerar esse arquivo, mas mostrando apenas os rows e não o cabeçalho da tabela.
Aceito sugestões.
blz. to vendo aqui os comandos para pesquisar os dados que eu quero. vou ver como q vou cruzar esses dados na pesquisa para poder inserir no arquivo.txt e posterior outro script q leia esse arquivo e envie um comando ssh para cada ramal.
infelizmente não tem nada feito para isso...
Eu to tentando acessar o mysql diretamente para pesquisar via shellscrip os clientes que estão com parcelas em atraso e ainda não estão bloqueados e colocar em 1 arquivo as seguintes informações:
login | ip_de_acesso | ramal.
a idéia é criar um script rodando no mk-auth para que depois que coletar esses dados,
inserir no address list do ramal do cliente em atraso o ip dele e a partir dai fazer as regras nos mikrotiks
para exibir as paginas de aviso de atraso.
o problema é que sou bem leigo em comandos do mysql.
seria muito boa essa ideia ( acompanhando )