Automatizando o login e comandos do telnet em um Mac

3

Atualmente, faço algo assim:

telnet 192.168.0.3 23

username

password

cd /dir/

programname -s -g dosomething

Eu quero fazer isso com um passo, o mais legal seria compilar um programa para isso usando o Automator, mas não tenho idéia de como fazer isso.
"shell script" no Automator falha em telnet 192.168.0.3 23 dizendo "conexão recusada" é claro: não tive chance de digitar senha e assim por diante.

Alguma idéia?

    
por choise 15.02.2011 / 15:08

3 respostas

2

Quando o ssh não está disponível, o expect é normalmente usado para automatizar o acesso usando o telnet .

Do artigo vinculado:

#!/usr/bin/expect #Where the script should be run from.
set timeout 20 #If it all goes pear shaped the script will timeout after 20 seconds.
set name [lindex $argv 0] #First argument is assigned to the variable name
set user [lindex $argv 1] #Second argument is assigned to the variable user
set password [lindex $argv 2] #Third argument is assigned to the variable password
spawn telnet $name #This spawns the telnet program and connects it to the variable name
expect "login:" #The script expects login
send "$user " #The script sends the user variable
expect "Password:" #The script expects Password
send "$password " #The script sends the password variable
interact #This hands control of the keyboard over two you (Nice expect feature!)
    
por 15.02.2011 / 16:39
2

Então, se nenhum sshd estiver instalado, você poderá automatizar seu telnet usando o expect, que provavelmente terá que instalar no seu mac.

O Expect é uma ferramenta principalmente para automatizar aplicativos interativos, como telnet, ftp, passwd, fsck, rlogin, dica e muito mais. Espero realmente torna isso trivial. Espera também é útil para testar essas aplicações. É descrito em muitos livros, artigos, artigos, e FAQs. Existe um livro inteiro disponível na O'Reilly.

Veja o link .

    
por 15.02.2011 / 16:37
0

Se o sistema rodando em 192.168.0.3 tiver um servidor sshd em execução, você pode simplesmente fazer

ssh [email protected] 'cd /dir/ ; programmname -s -g dosomething'

Para verificar se você tem o sshd rodando em 192.168.0.3 você pode apenas tentar, ou logar usando o telnet como você já faz e, se for um unix / linux / maxosx tente fazer um

pgrep -fl sshd

ou

ps -e | grep sshd

ou

lsof -i :22

Todos esses itens acima não encontrarão nada nem darão uma linha mostrando que o sshd está sendo executado.

    
por 15.02.2011 / 15:26