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

15

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

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 do PuTTY aparece, mas ela 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 fazer a janela do PuTTY parar por algum tempo antes de sair?

    
por Peter Mortensen 06.12.2012 / 06:54

5 respostas

9

Você deve usar plink.exe (uma interface de linha de comando para os backends do PuTTY) e não putty.exe

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

Sem plink:

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

    
por 06.12.2012 / 07:10
9

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

Exemplo: 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. As minas são: " drush dl drupal " próxima linha, " drush si - nome da conta = [nome da conta] --account-pass = [pass da conta] --db-url = mysql: // [usuário]: [pass] @ localhost / [nome do banco de dados] --y "

Depois de salvar esse arquivo, você criará um arquivo BAT ou o digitará no prompt do CMD:

  • ssh.cmd
  • @echo on [para você ver o que está acontecendo]
  • [Navegue até a sua instalação do PuTTY. O meu é:] cd C: \ Arquivos de programas \ Putty
  • Iniciar 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]
por 03.05.2013 / 08:19
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.

However, when I try to do so a new window for PuTTY appears, but closes and exits instantly after login

Sua sessão termina imediatamente após o comando ser executado, e o PuTTY fecha a janela por padrão. Veja a documentação do PuTTY sobre como mudar esse comportamento para a 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.
    
por 06.12.2012 / 12:38
0

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

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

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

machinename = machinename sem aspas duplas

senha = com aspas

    
por 02.05.2015 / 12:13
0

Além da resposta de Aviram:

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

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

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

por 13.05.2014 / 11:11