Automatizar ejecución de comandos a través de PuTTY 6


Existen muchas herramientas para tratar de automatizar procesos y muchas alternativas a PuTTY, sin embargo como ya estoy acostumbrado a PuTTY quería utilizarlo para ejecutar comandos en un servidor, usando las opciones que nos brinda y un simple archivo batch.

En el servidor tengo varios scripts de Linux en archivos .sh, entre ellos un proceso automático para realizar respaldos con MySqldump. Cuando trabajo en el servidor, a veces es necesario ejecutar este archivo manualmente, ingresar cada 10minutos es muy tedioso y repetitivo, por ello creé un archivo batch para simplemente realizarlo con rapidez en un doble clic.

Primero debemos tener instalado putty, muchas veces se instala junto a WinSCP. La pagina oficial es http://www.putty.org/

Descargamos e instalamos, luego buscamos la ruta de instalación y en mi caso es «C:\Program Files (x86)\PuTTY\putty.exe»

El comando para la conexión es un simple ssh, la cual podemos conectarnos a diversos sitios, ya sea mediante URL o IP, también podemos especificar si deseamos usar llaves ssh u otros métodos para loguearnos. En este caso usé simples parámetros con usuario y contraseñas.

ssh usuario@url puerto -pw tu_contraseña

El puerto es opcional, debe usarse si llegaron a cambiarlo en el servidor.

Los comandos a utilizar, no se pueden agregar en línea, se debe escribir  en un archivo txt para luego agregarlos al final del comando -m «ruta del archivo», en mi caso lo creé en el escritorio «script_ejecutar.txt».

Cuando finaliza el script, se cierran las ventanas automáticamente, si deseas mantenerlas abiertas para ver el resultado y poder escribir en la consola de Linux, debemos incluir “-t” al final del script principal y agregar “/bin/bash” al final del archivo de comandos a ejecutar.

Entonces quedamos con 2 archivos, el archivo principal bash:

ejecutar_respaldo.bat

Y el archivo con los comandos de Linux a ejecutar:

script_ejecutar.txt

Y listo. Con esto podemos automatizar varios procesos, como revisar ciertos archivos, verificar el tamaño del disco, ejecutar tareas manualmente y en un simple clic.

Luego necesitaba descargar los archivos de respaldos y para ello lo automaticé con WinSCP automatizar-transferencia-de-archivos-a-traves-de-winscp


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

6 ideas sobre “Automatizar ejecución de comandos a través de PuTTY

  • Andrés

    Estimado.
    Muchas gracias, me sirve de mucho este script, sin embargo quisiera saber si hay la forma por bat de ingresar a modo expert de ssh, en el modo expert pide contraseña y quisiera hacer eso por bat, me podrías ayudar? Muchas gracias

    • Grégor González Autor

      Hola Andrés, no he tenido la oportunidad de trabajar con ese modo, sin embargo para poder ingresar y obtener información (input output), la mejor manera es utilizar Plink (PuTTY command-line connection tool) el cual sí permite realizar esas interacciones. No lo he usado pero por lo que he investigado, sería igual, escribir los comandos en txt línea por línea incluido login y password, luego en vez de usar putty ejecutarías con plink.

      Espero sirva de ayuda, saludos.

  • Alejandro Flores

    Hola Gregor, buen día me es de mucho interes este post, en donde trabajo utlizamos mucho Putty para inresar a un sistema y extraer reportes de ahi y aunque es puro texto proporciona una «interfaz grafica» a base de texto (espero estar explicandome), en el cual ingresamos a las «paginas» por «claves» por ejemplo: Reporte de inventarios 16.5.5 y selecciono una salida para que lo muestre en pantalla o bien lo extraigo con WinSCP, mi pregunta es, como puedo automatizar la extracción de ese reporte? para que en lugar de estar poniendo claves para cada reporte ejecutarlo de manera automatica.

    Muchas gracias, saludos.

    • Grégor González Autor

      Hola Alejandro, creo que entiendo, eso dependerá del sistema y la plataforma, supongo que hablan de un sistema basado en unix. En el ejemplo que doy, la ejecución del programa «script_mysqldump.sh» es un archivo .sh que se encarga de iniciar sesión en la base de datos mysql y realizar un respaldo de la base de datos especificada a una carpeta. Supongo que puede hacerse el mismo proceso con el sistema que indicas, un archivo .sh ejecutable que haga el mismo proceso que haces con el sistema.

  • Jesus Carrillo

    Hola buenas noches
    Muy interesante y me ayudo mucho, pero tengo una duda depuse el comando -m coloque un .txt de comandos pero solo un comando, pero debo de correr tres comandos como integraría los demás comandos para que se ejecute uno después del otro, espero haberme expresado bien
    desde ya muchas gracias