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
seria muito boa essa ideia ( acompanhando )
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.
infelizmente não tem nada feito para isso...
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.
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.
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.
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?