Como executar um arquivo de comando no PuTTY usando o login automático em um prompt de comando?


19

Estou usando o seguinte para fazer login automaticamente em um servidor remoto e, em seguida, executar os comandos listados em a commands.txt, como este:

C:\path\to\putty.exe -load "[Sessionname]" -l [user] -pw [password] -m C:\path\to\commands.txt

commands.txt contém o seguinte:

ps -elf|grep 'sometext'

No entanto, quando tento fazer isso, uma nova janela para o PuTTY aparece, mas fecha e sai instantaneamente após o login. Como resultado, não consigo ver a saída do (s) comando (s).

Eu não entendo o que está acontecendo aqui. Estou errado na minha abordagem ou preciso tomar mais medidas para que a janela do PuTTY seja interrompida por algum tempo antes de sair?


2
Considere usar o Plink.exe (normalmente incluído no Putty, lembre-se de incluir no PATH). Passei duas horas pesquisando como especificar a chave rsa em uma linha de comando para o PuTTY porque não é seguro codificar senhas. Eu negligenciei a solução Plink porque, pensei que a ligação tivesse que começar com massa. Verifique a resposta abaixo mencionando o Plink. Por exemplo: `Plink.exe -ssh host -l user -ic: \ Users \ meuName \ .ssh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

Respostas:


11

Você deve usar plink.exe(uma interface de linha de comando para os back-ends PuTTY) e nãoputty.exe

Você obtém isso na página de download do PuTTY

Sem plink:

Parece que a única maneira é usar as -log <logfile>opções, imprimir o conteúdo e excluí-lo.


Não consigo usar plink ou outras interfaces de linha de comando. Existe alguma outra maneira de fazer isso

2
@supportpb "Não consigo usar o plink" - por quê? o que acontece se você tentar?
gertvdijk

1
@gertvdijk o que acontece é que ele é demitido para a utilização de software não aprovado em computadores corporativos ...
Torben Gundtofte-Bruun

opção não suportada:-log
Allan Bowe

9

Primeiro você precisaria criar um arquivo separado contendo todos os comandos que você gostaria de executar.

Exemplo: eu gostaria de baixar e instalar o Drupal no meu domínio usando o PuTTY. Para fazer isso, você deve:

Primeiro, crie um arquivo .txt. Dentro desse arquivo estão os comandos. Os meus são: " drush dl drupal " próxima linha ", drush si - nome da conta = [nome da conta] - passe da conta = [passe da conta] - db-url = mysql: // [usuário]: [passe ] @ localhost / [nome do banco de dados] --y "

Depois de salvar esse arquivo, agora você irá criar um arquivo BAT ou digitá-lo no prompt do CMD:

  • ssh.cmd
  • @echo on [para você ver o que está acontecendo]
  • [Navegue até a instalação do PuTTY. O meu é:] cd C: \ Arquivos de Programas \ Putty
  • Começar putty.exe -ssh [domain name] -l [username] -pw [password] -m [the directory of the .txt file you created which contains the codes you want to be executed]

A opção -m não funciona para mim. ele está dando um erro dizendo que não é possível abrir arquivo de comando <caminho para o meu arquivo de texto>
user590849

@ user590849 o caminho para o seu arquivo de texto de comando possui algum espaço em branco? Porque eu apenas
Black Frog

2

Sua abordagem parece boa, no entanto, há uma configuração padrão no comportamento que está causando problemas aqui e provavelmente fazendo você acreditar que nada está acontecendo.

No entanto, quando tento fazer isso, uma nova janela para o PuTTY aparece, mas fecha e sai instantaneamente após o login

Sua sessão termina imediatamente após a execução do comando e o PuTTY fecha a janela por padrão. Consulte a documentação do PuTTY sobre como alterar esse comportamento para sua sessão.

4.1.3 `Close Window on Exit'

   Finally in the Session panel, there is an option labelled `Close
   Window on Exit'. This controls whether the PuTTY terminal window
   disappears as soon as the session inside it terminates.

Interessante, mas que irá afectar as sessões de manuais, bem ...
Aviram Segal

1
@AviramSegal É uma configuração de sessão. Apenas duplique a configuração da sessão, diga session-noclosee use essa na criação de scripts.
Gdvdijk

1
oh configuração de sessão, então sim que irá trabalhar
Aviram Segal

1

Não haveria problema se você apenas desejasse criar o arquivo em lotes para abrir a máquina Unix. Abaixo está o exemplo:

"PuTTY path" -ssh machinename -l username -pw password

O caminho PuTTY deve estar entre aspas duplas, como "C: \ Arquivos de Programas \ putty \ putty.ext"

nome da máquina = nome da máquina sem aspas duplas

password = com aspas


0

Além da resposta de Aviram:

Abaixo está o exemplo de como você executará os comandos PuTTY no prompt de comando:

  • Primeiro, vá para o diretório de instalação do PuTTY, por exemplo C:\Program Files\PuTTY, e depois execute o comando abaixo:

    plink.exe -ssh server_ip -P port_no -l user_name -pw senha

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.