Automatizando com Script-Expect

Publicado por AILTON DORIA (última atualização em 13/09/2012)

[ Hits: 13.384 ]

Homepage: https://www.vivaolinux.com.br/~ailton.doria

Download expect.sh




Este script automatiza configurações para switch, roteadores e servidores, isto vai da necessidade e da criatividade de cada um!

Graças a preguiça eu tive que correr atrás das informações, eu precisava adicionar algumas configurações de 250 devices (CISCO) na rede.

Obs.: O pacote expect deve estar instalado.

Se a distro for Debian: apt-get install expect -y

  



Esconder código-fonte

#!/bin/bash
# No campo Username & Password coloque sua senha do tacacs
# O script vai vai logar com seu usuario e sua senha para fazer as
# alterações descritas no script.
# voce deve descrever o arquivo onde estão os hosts e outro com os comandos a frente do script
# exemplo: script.sh host.txt comandos.txt

#INICIO

#Declarando as variaveis
USERNAME=usuario
PASSWORD=!@#@!#
HOST="$1"
CMD="$(cat $2)"

for var in $(cat $1);do

#Utilizando as variaveis declaradas acima para autenticar nos hosts

expect -c "
spawn telnet $var
expect \"*Username:*\"
send \"$USERNAME\r\"
expect \"*Password:*\"
send \"$PASSWORD\r\"
expect \"*#*\"
sleep 5
send \"$CMD\r\"
expect \"*#*\"
send \"end\r\"
expect \"*#*\"
send \"exit\r\"
interact
"
done
#FIM

Scripts recomendados

Alterando resolução de monitor externo

Instalar o Java diretamente do site oficial

Monitorar status de transferência das interfaces de rede

Diagnóstico de Rede

Conversor numérico


  

Comentários
[1] Comentário enviado por marcospaulovm em 17/07/2019 - 16:03h

Boa tarde, estou criando um script com expect, porém precisava inserir o comando de data e hora atual (`date +%d-%m-%Y`) e o expect não dá suporte a esse tipo de função. Gostaria de saber como posso tá inserindo essa informação em uma variável qualquer dentro do meu Shell

[2] Comentário enviado por ailton.doria em 23/07/2019 - 10:15h


Opa, Tudo bem? Desculpa demora.

Então, voce pode declarar a variavél antes de iniciar os script e aplicar ela no campo que voce precisar.

Segue abaixo um exemplo.


Declarei a variavel DATE com seu comendo.
#Declarando as variaveis
USERNAME=usuario
PASSWORD=!@#@!#
HOST="$1"
CMD="$(cat $2)"
DATE=$(date +%d-%m-%Y)


for var in $(cat $1);do

#Utilizando as variaveis declaradas acima para autenticar nos hosts

expect -c "
spawn telnet $var
expect \"*Username:*\"
send \"$USERNAME\r\"
expect \"*Password:*\"
send \"$PASSWORD\r\"
expect \"*#*\"
sleep 5
send \"$CMD\r\"
expect \"*#*\"
send \"end\r\"
expect \"*#*\"
send \"exit\r\"
interact
"
done
#FIM


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts