Automatizando com Script-Expect

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

[ Hits: 13.622 ]

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

Aplica quotas a partir de um arquivo gerado pelo repquota.

Angelinux Scripts - Teste de desempenho da sua maquina!

Criação de pasta com senha no Apache

Troca de link em caso de queda de Internet (FAILOVER)

Software backup, restore, leitura de logs, com dialog


  

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