Segue script para exportação da access-list e cadastro de clientes do pppoe secret (pode ser adaptado para hotspot facilmente).
#!/bin/bash
#======== EXPORTACAO DE DADOS MKAUTH PARA MIKROTIK ========#
##---------------==== COMPILADO POR: ====------------------##
##---------- LUCIANO RAMPANELLI - M4D3@HOTMAIL.COM ---------##
#--------------------- www.nimoc.com.br ----------------------#
#===============================================#
banco=mkradius
table=sis_cliente
campo=ativo
#IP DE CADA AP OU SERVIDOR QUE IRA RECEBER OS DADOS
ap1=172.16.16.251
ap2=172.16.16.252
#USUARIO FTP PARA ENVIO DE ARQUIVOS
ftp_user="ftpuser"
ftp_pass="ftpuser123"
#USUARIO SSH PARA EXECUCAO DE COMANDOS
ssh_user="sshuser"
#DEVE SER CADASTRADO SEM SENHA, LIBERAR APENAS IP DO MKAUTH NO MIKROTIK PARA ESTE USUARIO
#ARQUIVOS DESTINO
arquivo1="access-list.rsc"
arquivo2="secret.rsc"
#EXPORTACAO DO BANCO DE DADOS
if [ "$1" = "s" ];then
mysql -u root -pvertrigo -e\
"SELECT login, mac, plano, tipo, senha FROM $table WHERE $campo = '$1'" $banco |awk '{ print $1, $2, $3, $4, $5 }' |grep -v "login mac plano tipo senha" |grep -v "NULL" > /tmp/.lmp
fi
count=`cat /tmp/.lmp|wc -l`
indice=$count
#MONTAGEM DA STRING DE IMPORTACAO DOS MACS PARA A ACCESS-LIST
echo "/interface wireless access-list " > $arquivo1
while [ $count -gt 0 ]; do
login=`cat /tmp/.lmp |awk '{ print $1 }' |sed -n $count"p"`
mac=`cat /tmp/.lmp |awk '{ print $2 }' |sed -n $count"p"`
if [ ! -z $login ]; then
echo "add comment="$login" disabled=no interface=all mac-address=$mac signal-range=-78.120 forward=no" >> $arquivo1
fi
count=`echo $count-1|bc`
done
cat $arquivo1
echo " "
count=`cat /tmp/.lmp|wc -l`
indice=$count
#MONTAGEM DA STRING DE IMPORTACAO DOS CLIENTES PPPOE
echo "/ppp secret " > $arquivo2
while [ $count -gt 0 ]; do
login=`cat /tmp/.lmp |awk '{ print $1 }' |sed -n $count"p"`
mac=`cat /tmp/.lmp |awk '{ print $2 }' |sed -n $count"p"`
plano=`cat /tmp/.lmp |awk '{ print $3 }' |sed -n $count"p"`
tipo=`cat /tmp/.lmp |awk '{ print $4 }' |sed -n $count"p"`
senha=`cat /tmp/.lmp |awk '{ print $5 }' |sed -n $count"p"`
if [ $tipo = "pppoe" ]; then
echo "add caller-id=$mac name=$login password=$senha profile=$plano service=$tipo disabled=yes" >> $arquivo2
fi
count=`echo $count-1|bc`
done
cat $arquivo2
echo " "
#ENVIO DE ARQUIVOS POR FTP
echo "Enviando arquiovos..."
ftp -in $ap1 << ap1
user $ftp_user $ftp_pass
send $arquivo1
send $arquivo2
bye
EOF
quit
ap1
ftp -in $ap2 << ap2
user $ftp_user $ftp_pass
send $arquivo1
send $arquivo2
bye
EOF
quit
ap2
echo " "
#EXECUCAO DE COMANDOS VIA SSH
echo "Importando dados..."
ssh $ssh_user@$ap1 << sh1
/ppp secret export file=bkp_secret.rsc
/ppp secret remove [/ppp secret find]
/import $arquivo2
/interface wireless access-list export file=bkp_access-list.rsc
/interface wireless access-list remove [/interface wireless access-list find]
/import $arquivo1
/quit
sh1
ssh $ssh_user@$ap2 << sh2
/ppp secret export file=bkp_secret.rsc
/ppp secret remove [/ppp secret find]
/import $arquivo2
/interface wireless access-list export file=bkp_access-list.rsc
/interface wireless access-list remove [/interface wireless access-list find]
/import $arquivo1
/quit
sh2
rm -fr $arquivo1
rm -fr $arquivo2
echo "Exportado(s) $indice registro(s)"
#DOCUMENTACAO
#http://thobias.org/doc/shell_bd.html#toc11
#DEPENDENCIAS
#apt-get update
#apt-get install ftp bc -y
#PARA RODAR DIGITE
#mka2mk.sh s
Salve o script acima como mka2mkt.sh
Dê de permissao de execução: chmod +x mka2mkt.sh
E rode o script após configurar os parametros com: ./mka2mkt.sh s
A letra 's' identifica os clientes ativos, mas você pode alterar para usar como bem entender.
O agendamento pode ser feito para rodar durante a madrugada pelo crontab, mantendo seu MK-AUTH sincronizado com mikrotik.
É isso pessoal, dúvidas é só perguntar, convido os colegas a aprimorarem o script bem como a complementarem com novas funções.
Valeu
Luciano Rampanelli - M4D3
Respostas
aqui tambem nao esta funcionando, e depois q add um novo ramal o mkauth parou de enviar automatico
Tiago Das Neves Rodrigues disse:
esses Scripts aqui nunca mais foi comentado. está file dando erro. alguem sabe. meu mk-auth desligou esses dias e os clientes não conseguia logar ai tive que ir até ele e ver oque ki tava pegando kkkk
Ola amigo jonas oliveira da silva o seu script ta dando erro quando tem 2 arquivo com a mesma extensão
nao teria como colocar pra ele pega sempre o mais novo cp -u `find /usr/local/mkauth/backup -mtime -1 -name '*.tgz
jonas oliveira da silva disse:
Abri outro tópico com o script e um tutorial mostrando como aplicar as configurações....
Desde já peço desculpas ao Luciano, não estou desvalorizando o seu tópico, dou nota 10 para ele, abri outro tópico porque o meu script tem outra estrutura, mais tem essa mesma função de exportar do mk-auth e importar no mikrotik "autmatico"
um abraço a todos!
LINK PARA EXPORTAR BACKUP MK-AUTH E IMPORTAR NO MIKROTIK "TUDO AUTOMATICO"
Pois é o script está tão perfeito! kkkk
envia os arquivos por ftp, importa nos mikrotiks, envia um e-mail com um relatório dos registros e os arquivos em anexo... tá show!
deixa eu abusar do brinquedo ai depois deixo vocês bricarem tambem kkk...
Claudvan Lima disse:
acompanhando...
Estou no aguardo!
Eu numca consegui fazer exportar do mk-auth para meu mikrotik...
jonas oliveira da silva disse:
Tambem nao tive sucesso com esse script, parece que falta alguns detalhes,
mais gostei da ideia, nota 10!
adaptei e consegui desenvolver outro script para importar para o mikrotik que está 100%
o script tem essa mesma função exportar mk-auth e importar mikrotik" pppoe, hotspot, access-list" todos
depois envia os comandos ssh para importar os arquivos, "serve pra mais de um miktorik" (meu caso).
assim que eu estiver com um tempinho vou postar aqui.
alguem teve sucesso com esse script?
amigo esse script esta parando depois do login no ftp e no ssh, no caso aqui so tenho 1 rb que gerencia a rede...