Script para retornar números de série de equipamentos de comutação de rede

0

Fui encarregado de fazer uma pesquisa e inventário de uma rede muito grande. Eu especificamente preciso obter os números de série de mais de 1000 switches e roteadores Avaya. Todos são acessíveis via telnet ou ssh da minha estação de trabalho. Quase todos eles são acessíveis com o mesmo nome de usuário e senha. Alguns terão apenas acesso telnet e alguns terão apenas acesso ssh.

Uma vez logado, eu posso pegar o número de série assim:

en[crlf] (para ativar o modo de comando cli)

show tec[crlf] (retorna informações técnicas do dispositivo)

[3x spacebar] (para garantir que o número de série seja exibido)

q (para deixar de exibir mais dados e retornar ao prompt cli )

exit[crlf] (para terminar a sessão de terminal)

A partir da saída gerada por isso, posso então usar os números de série.

Portanto, meu problema é automatizar isso em um script bash ou algo semelhante para gerar uma lista de números de série em relação aos endereços IP fornecidos dos dispositivos.

O roteiro deve idealmente:

1.Leia o endereço IP do dispositivo de um arquivo.

2.Tente fazer o login com credenciais ssh 1 (se falhar, tente credenciais 2)

3.Se falhou, credenciais telnet 1 (se falhar, tente credenciais 2)

4.Se tudo falhou, escreva "Falha ao logar" no arquivo de saída.

5.Se for bem sucedido, escreva o endereço IP do dispositivo e serial para o arquivo de saída.

6.Repita o próximo IP do dispositivo na lista.

7.Usando nome de usuário em texto simples e senhas nesta situação não é um problema.

Estou usando o Ubuntu Linux mais recente em minha estação de trabalho.

Espero que alguém possa me dar alguns conselhos sobre como realizar essa tarefa. Não estou ansioso para fazer login manualmente em 1000 comutadores.

    
por Doep100 09.05.2018 / 08:37

1 resposta

3

Para a automação de processos interativos da CLI, você pode usar o "Expect" ou suas alternativas: link . O exemplo de script Expect mais simples:

spawn telnet foo.bar.com 
expect ogin {send luser\r}
expect assword {send TopSecret\r}
send "who am i\r" 
send "exit\r"
expect eof
    
por 09.05.2018 / 10:54