+ Responder ao Tópico



  1. #1

    Padrão Shell Script para integração com Mikrotik

    Existe uma forma de se gerar um script em Shell Script num gateway linux para pegar o "MAC" e "NOME" do cliente de um banco de dados nosso e exportar o mesmo para o "ACCESS LIST" do MKT, sem usar o terminal ou winbox, seria Linux pra MKT.

  2. #2

    Padrão

    sim, existe uma forma de fazer isso.

  3. #3

    Padrão

    Citação Postado originalmente por Kandango Ver Post
    Existe uma forma de se gerar um script em Shell Script num gateway linux para pegar o "MAC" e "NOME" do cliente de um banco de dados nosso e exportar o mesmo para o "ACCESS LIST" do MKT, sem usar o terminal ou winbox, seria Linux pra MKT.
    poste uma linha do seu arquivo do linux q eu fasso o script p vc

  4. #4

    Thumbs up

    Citação Postado originalmente por binhorp Ver Post
    poste uma linha do seu arquivo do linux q eu fasso o script p vc
    !/bin/bash
    ##########################################################
    #### SQL PRA LISTAR PARAMETROS PARA CRIAÇÃO USER (RADIUS)

    #### CONECTANDO AO BANCO E SELECIONANDO O PARAMETROS
    mysql -h 222.222.222.222 -D bancodedados -u administrator -senha123 -e "select maclist.ip,maclist.banda,maclist.login,email.nome,email.email,usuarios.login from maclist,email,usuarios where usuarios.situacao <> 'X' and usuarios.situacao <> 'B' and maclist.numero=email.numero and usuarios.numero=maclist.numero and email.email like 'p-%' order by maclist.ip asc;" | grep 192.168.2| awk '{print $1"-"$2"-"$4"-"$5"-"$6}' > /opt/sgcu/listappp

    #### DEFININDO VARIAVEIS
    MACLIST=/opt/sgcu/listappp
    CONTADOR6=0

    #### LIMPANDO ARQUIVOS
    > /opt/sgcu/listapppteste
    > /usr/local/etc/raddb/users
    > /opt/sgcu/accesslistmkt

    #### EXTRAINDO PARAMETROS PARA O USERS (pppOE) DE CADA CLIENTE
    for i in `cat $MACLIST | grep 192.168.248`; do
    MAC=`echo $i | cut -d '-' -f 4`
    USUARIO=`echo $i | cut -d '-' -f 5`
    SENHA=`echo $i | cut -d '-' -f 7`
    IP=`echo $i | cut -d '-' -f 1`
    DOWN=`echo $i | cut -d '-' -f 2`
    UP=`echo $i | cut -d '-' -f 3`
    NOME=`echo $i | cut -d '-' -f 8`
    CONTADOR6=`expr $CONTADOR6 + 1`
    BANDABURSTDOWN=`expr $DOWN \* 2`
    BANDABURSTUP=`expr $UP \* 2`
    BANDATRESHOLDDOWN=`expr $DOWN / 2`
    BANDATRESHOLDUP=`expr $UP / 2`

    #### GERANDO LINHAS COM OS PARAMENTOS PARA O USERS (PPPoe) PARA CADA CLIENTE
    echo "##################################################################" >> /opt/sgcu/listapppteste
    echo "#" $CONTADOR6 - $NOME >> /opt/sgcu/listapppteste
    echo "##################################################################" >> /opt/sgcu/listapppteste
    echo $SENHA' Auth-Type := Local, User-Password == "'$USUARIO'"' >> /opt/sgcu/listapppteste
    echo \ " Service-Type = Framed-User," >> /opt/sgcu/listapppteste
    echo \ " Framed-Protocol = PPP," >> /opt/sgcu/listapppteste
    echo \ " Framed-IP-Address =" $IP"," >> /opt/sgcu/listapppteste
    echo \ " Framed-MTU = 1452," >> /opt/sgcu/listapppteste
    echo \ " Fall-Through = Yes," >> /opt/sgcu/listapppteste
    echo \ " Framed-Compression = Van-Jacobson-TCP-IP," >> /opt/sgcu/listapppteste
    echo \ ' Mikrotik-Rate-Limit = "'$DOWN'000/'$UP'000' $BANDABURSTDOWN'000/'$BANDABURSTUP'000 '$BANDATRESHOLDDOWN'000/'$BANDATRESHOLDUP'000 10/10",' >> /opt/sgcu/listapppteste

    #### SCRIPT PARA EXPORTAçÂO MACLIST PRA MKT - NESTE PONTO EU NÂO SEI COMO ENVIAR ISSO
    echo \ "add mac-address=$MAC interface=wlan1 authentication=yes forwarding=no ap-tx-limit=0 client-tx-limit=0 private-algo=none private-key="" private-key="" comment=$USUARIO disabled=no" >> /opt/sgcu/accesslistmkt
    #### ATÉ AKI TUDO OK, EU CONSIGO GERAR O ARQUIVO DE ACCESS LIST NO LAYOUT NO MKT, mas como vou excluir o access list do mkt e depois
    enviar este arquivo que gerei

    echo "" >> /opt/sgcu/listapppteste
    done



    #### TRANSFERINDO LISTA PARA O USERS DO RADIUS
    cat listapppteste >> /usr/local/etc/raddb/users



    #### REINICIANDO O RADIUS
    rc.radiusd stop
    rc.radiusd start