Utilizo essa parte do script para adicionar os clientes cadastrados e ativos na tabela ARP do MK, porém coloquei só o essencial, podendo ser modificado conforme necessidade.
O script recebe os parâmetros host, usuário e senha, realiza o login, envia o comando e por fim fecha a seção de telnet. O \r serve pra dar ENTER após o comando.
Dependências: expect.
Abaixo o script (meu_script):
#!/usr/bin/expect -f
log_user 0
set host [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
spawn telnet ${host}
expect "Login:"
send -- "${user}\r"
expect "Password:"
send -- "${password}\r"
expect ">"
send -- "comando a ser enviado \r"
expect ">"
send -- "exit\r"
Para utilizar:
# ./meu_script 192.177.4.5 admin 123456
Sendo admin e 123456 o usuário e senha respectivamente.
[1] Comentário enviado por lecirhaas em 24/04/2010 - 00:44h
Olá.
edinhow, alterei seu script conforme minhas necessidades... ficou assim:
#!/usr/bin/expect -f
log_user 0
set host [lindex $argv 0]
set mac [lindex $argv 1]
set ipaddr [lindex $argv 2]
set comment [lindex $argv 3]
set interf [lindex $argv 4]
set veloc [lindex $argv 5]
spawn telnet ${host}
expect "Login:"
send -- "xxxxxxxxxx\r" #fixei o login internamente, pois é o mesmo em todos os meus APs
expect "Password:"
send -- "yyyyyyyyyy\r" #fixei a senha internamente, pois é a mesma em todos os meus APs
expect ">"
send -- "interface wireless access-list add mac-address=${mac} interface=${interf} comment=${comment} \r"
expect ">"
send -- "ip dhcp-server lease add mac-address=${mac} server=${interf} address=${ipaddr} comment=${comment}\r"
expect ">"
send -- "ip arp add address=${ipaddr} mac-address=${mac} interface=${interf} comment=${comment}\r"
expect ">"
send -- "queue simple add target-addresses=${ipaddr} max-limit=${veloc} name=${comment}\r"
expect ">"
send -- "exit\r"
A sintaxe ficou assim:
> meu_script ip_do_mikrotik mac_cliente ip_cliente comentario interface velocidade
Exemplo:
> meu_script 192.168.200.10 00120ed62211 192.168.0.15 Fernando painel_02 64000/200000
*OBS: é preciso observar que o nome da interface e do servidor dhcp devem ser identicos.
Funciona perfeitamente em MKs 2.xx, mas estou tendo dificuldades em utiliza-lo na versão 3.xx, mesmo a sintaxe dos comandos enviados sendo exatamente a mesma. Agradeço a todos e se alguém souber pq acontece isso poste aí...
[2] Comentário enviado por carlogray em 25/08/2011 - 11:12h
Olá, ja procurei por todos os lado mas nao encontro, queria um shellscript que eu entrasse com o servidor e ele automaticamente digitasse meu usuario e senha, e depois liberasse a shell pra eu usar apartir dai.
Sera que da?
Obrigado