¿Cómo ejecutar un archivo de comando en PuTTY usando el inicio de sesión automático en un símbolo del sistema?

19

Estoy usando lo siguiente para iniciar sesión automáticamente en un servidor remoto y luego ejecutar comandos enumerados en un commands.txt, como este:

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

commands.txt contiene lo siguiente:

ps -elf|grep 'sometext'

Sin embargo, cuando intento hacerlo, aparece una nueva ventana para PuTTY, que se cierra y se cierra al instante después de iniciar sesión. Como resultado, no puedo ver el resultado de los comandos.

No entiendo lo que está pasando aquí. ¿Estoy equivocado en mi enfoque o necesito tomar más medidas para hacer que la ventana de PuTTY haga una pausa antes de salir?

Peter Mortensen
fuente
2
Considere usar Plink.exe en su lugar (generalmente incluido con Putty, recuerde incluirlo en PATH). Pasé 2 horas buscando en Google cómo especificar la clave rsa en una línea de comando para PuTTY porque no es seguro para las contraseñas de código duro. Pasé por alto la solución de Plink porque pensé que la llamada tenía que comenzar con masilla. Verifique la respuesta a continuación mencionando Plink. por ejemplo, `Plink.exe -ssh host -l usuario -ic: \ Users \ myName \ .ssh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

Respuestas:

11

Debe usar plink.exe(una interfaz de línea de comandos para los back-end PuTTY) y noputty.exe

Lo obtienes de la página de descarga de PuTTY

Sin tintineo:

Parece que la única forma es usar las -log <logfile>opciones y luego imprimir su contenido y eliminarlo.

Aviram Segal
fuente
No puedo usar plink u otras interfaces de línea de comandos. ¿Hay alguna otra forma de hacerlo
2
@supportpb "No puedo usar plink": ¿por qué? ¿Qué pasa si lo intentas?
gertvdijk
1
@gertvdijk lo que sucede es que lo despiden por usar software no aprobado en máquinas corporativas ...
Torben Gundtofte-Bruun
opción no compatible:-log
Allan Bowe
9

Primero, necesitaría crear un archivo separado que contenga todos los comandos que desea ejecutar.

Ejemplo: me gustaría descargar e instalar Drupal en mi dominio usando PuTTY. Para hacer eso debes:

Primero cree un archivo .txt. Dentro de ese archivo están los comandos. Los míos son: " drush dl drupal " siguiente línea, " drush si --account-name = [nombre de cuenta] --account-pass = [pase de cuenta] --db-url = mysql: // [usuario]: [pasar ] @ localhost / [nombre de la base de datos] --y "

Después de guardar ese archivo, ahora va a crear un archivo BAT o escribirlo en el indicador CMD:

  • ssh.cmd
  • @echo on [para que veas lo que está pasando]
  • [Navegue a su instalación PuTTY. El mío es:] cd C: \ Archivos de programa \ Putty
  • comienzo 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]
Jero Dungog
fuente
La opción -m no me funciona. está emitiendo un error que dice que no se puede abrir el archivo de comando <ruta a mi archivo de texto>
user590849
@ user590849 ¿la ruta al archivo de texto de comando tiene algún espacio en blanco? Porque yo solo
Black Frog
2

Su enfoque parece bueno, sin embargo, hay una configuración predeterminada en el comportamiento que le está causando problemas aquí y probablemente haciéndole creer que no está sucediendo nada.

Sin embargo, cuando intento hacerlo, aparece una nueva ventana para PuTTY, que se cierra y se cierra al instante después de iniciar sesión

Su sesión finaliza inmediatamente después de que se ejecutó el comando, y PuTTY cierra la ventana por defecto. Consulte la documentación de PuTTY sobre cómo cambiar este comportamiento para su sesión.

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.
gertvdijk
fuente
Interesante, pero eso también afectará las sesiones manuales ...
Aviram Segal
1
@AviramSegal Es una configuración de sesión. Simplemente duplique la configuración de la sesión, diga session-noclosey use esa en las secuencias de comandos.
gertvdijk
1
oh configuración de sesión, entonces sí, eso funcionará
Aviram Segal
1

No habría ningún problema si solo desea crear el archivo por lotes para abrir la máquina Unix. A continuación se muestra el ejemplo:

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

La ruta PuTTY debe estar entre comillas dobles, como "C: \ Archivos de programa \ putty \ putty.ext"

machinename = machinename sin comillas dobles

contraseña = con comillas

usuario443234
fuente
0

Además de la respuesta de Aviram:

A continuación se muestra el ejemplo de cómo ejecutará los comandos PuTTY desde el símbolo del sistema:

  • Primero vaya al directorio de instalación de PuTTY, por ejemplo C:\Program Files\PuTTY, y luego ejecute el siguiente comando:

    plink.exe -ssh server_ip -P port_no -l user_name -pw contraseña

Vishrant
fuente