Você está usando errado o aplicativo plink.
Tente com a ajuda oficial:
Página específica: 7.2.3.1 -batch: desativa todos os prompts interativos
Eu tenho tentado automatizar um processo de telnet usando um tipo de script. Sempre que recebo uma dica, aponta para PUTTY.
Eu baixei o PUTTY e seus derivados, (plink.exe) para fazer meu script funcionar. Eu não consigo passar do ponto zero ...
plink -telnet scriptfile.txt
(todos os arquivos locais)
parece apenas travar neste ponto. Qual é a sintaxe correta?
Você está usando errado o aplicativo plink.
Tente com a ajuda oficial:
Página específica: 7.2.3.1 -batch: desativa todos os prompts interativos
Não sei o que essa outra resposta está dizendo.
A sinopse simples da linha de comando para plink
é
plink [options] [user@]host [command]
e, assim, o uso mais simples é
plink host
onde host
pode, é claro, ser um nome de host regular
(resolvível via DNS, NIS, hosts
file, ou qualquer outro) ou um endereço IP (numérico).
Você provavelmente também pode usar um nome de perfil salvo PuTTY
(que encapsula uma identificação de host, junto com um conjunto de opções).
Você pode precisar usar a opção -telnet
para informar plink
para não usar o protocolo rlogin
ou SSH.
Não sei o que você leu sobre o script plink
.
Tanto quanto sei, o PuTTY não tem essa capacidade.
O que eu fiz foi automatizar um login remoto (na verdade, usei o SSH) usando expect
para gerar plink
.
Eu obtive expect
como parte do pacote ActiveTcl do ActiveState.
(Se você pesquisar este site, poderá encontrar algumas instruções sobre como fazer isso.)
Eu então escrevi um arquivo chamado foo.tcl
que se parece um pouco com isto:
# load the Expect package into Tcl package require Expect exp_spawn plink 10.10.10.10 expect : { # Wait for the server to issue a login: prompt. exp_send -s "gman\r" # My username (not really). } expect word: { # Wait for the server to issue a password: prompt. exp_send -s "iLoveCats\r" # My password (not really). } ︙
e depois eu corri, digitando tclsh foo.tcl
.
Boa sorte!
P.S. Na verdade, não coloque os comentários da maneira que mostrei.
ActiveTcl permite comentários que começam com #
, mas, aparentemente, apenas em linhas separadas.
P.P.S. O argumento command
na linha de comando plink
refere-se a um comando
que você deseja que plink
envie para o host remoto após efetuar o login.
Estou usando o seguinte arquivo .bat e funciona muito bem.
plink hostip -P portnum < cmds.txt
No meu caso, cmds.txt é apenas os comandos que eu colocaria se eu usasse o putty client.
Você também pode obter a saída do que o plink retorna para fins de diagnóstico dessa maneira:
plink hostip -P portnum < cmds.txt > output.txt