Script de shell para comandos telnet e executar

Foi desenhado um shell script que possui os recursos de telnet automático e executa comandos de execução para outras máquinas, encerrando assim a sessão de telnet sem qualquer tipo de interação do usuário. O usuário só precisa executar o script de shell ou chamar a função de outro script. Isso é amplamente aplicável ao Linux, mas, para o sistema UNIX, é necessário instalar previamente os pacotes TCL e INSTALL. Existe um diretório separado para instalar o comando Esperar. Comandos específicos são usados ​​para ocultar a conversação entre a outra máquina e o shell script no Linux. Endereço, nome de usuário e senha são atribuídos durante a chamada do script. O endereço IP é necessário para a declaração do shell, após o qual o comando de execução a ser executado é enviado marcando o final da sessão do telnet.

Questão

Eu fiz um script de shell que pode telnet automaticamente e executar comandos na outra máquina e terminar a sessão de telnet sem qualquer interação do usuário; o usuário apenas executa o script ou o chama de outro script.

Mas você precisa instalar os pacotes EXPECT e TCL no seu sistema Unix.

O script contém as seguintes instruções:

#! / usr / local / bin / expect -f #### / usr / local / bin / expect é o diretório onde o expect foi instalado

log_user 0 #### este comando é usado para esconder a conversa entre o script e a outra máquina

set address [lindex $ argv 0] ### atribui o primeiro parâmetro passado ao chamar o script para $ address

set username [lindex $ argv 1] ### atribui o segundo parâmetro passado enquanto chama o script para $ username

set password [lindex $ argv 2] ​​### atribui o 3º parâmetro passado enquanto chama o script para $ password

spawn telnet $ {address} ### inicia a sessão de telnet para maquina com IP = $ address

### iniciar conversa com a máquina:

esperar "login:"

send - "$ {username} \ r"

esperar "Senha:"

send - "$ {password} \ r"

esperar "$"

send - "#! / bin / ksh \ r" ### declara o shell a ser usado (opcional)

esperar "$"

send - "### digite qualquer comando que você queira executar"

esperar "$"

send - "exit \ r" ### encerra a sessão do telnet e sai do script

Para executar esse script, digitei:

$ expect_script "endereço" "nome de usuário" "senha" ### o nome do script é "expect_script"

Mas antes de chamar o script expect, você deve tornar o script expect executável, e isso pode ser feito digitando:

$ chmod + x expect_script

Solução

Tente isto:

 #! / usr / local / bin / esperar gerar telnet esperar "login:" enviar "\ n" esperar "Senha:" enviar "\ n" enviar "bash \ n" enviar "cd / opt \ n" enviar "ls - ltr \ n "? (se você não está dando \ n, então ele irá aguardar sua resposta ou você terá que digitar manualmente). interagir 

Como executar o comando "esperar" esperar -f

Ex: espere -f .expect

Nota

Obrigado ao ZooZoo por essa dica no fórum.

Artigo Anterior Próximo Artigo

Principais Dicas