¡Cómo automatizar la entrada para un script repetitivo! ¿Esperar en Bash?

¡Cómo automatizar la entrada para un script repetitivo! ¿Esperar en Bash?

Soy un administrador de sistemas junior. La razón por la que hago esta pregunta es porque aquí no tenemos un administrador de sistemas senior que domine las secuencias de comandos. Los chicos mayores están en la oficina central y están demasiado ocupados para algo como esto.

Mi escenario es este. Tengo que ejecutar tres scripts con frecuencia para implementar una aplicación. Los scripts fueron creados por un administrador de sistemas senior. Generalmente todo va bien con ellos y sin errores. Pero tengo que cuidarlos para recibir información. :(

Durante partes de estos guiones, hay partes en las que tengo que ingresar sí o no. Mis respuestas nunca cambian, a menos que la parte anterior falle, entonces selecciono no y dice "compilación fallida".

Básicamente, existen estas partes que ejecuto:

1: SSH en un servidor de implementación

2: editar una pequeña cadena en un archivo (que especifica información específica del servidor)

3: ejecute el script A, que básicamente escanea todos los archivos de la implementación al servidor de destino. La única entrada que tengo para dar aquí está al final. Me pregunta si se muestra la fecha correcta en el objetivo; si digo que sí, la compilación se realizó correctamente.

4: ejecute el script B también desde el servidor de implementación, que necesita información específica, por ejemplo:

./scriptB XYZ donde los cambios X, Y, Z dependen de la información del servidor de destino.

El guión B tiene algunas preguntas como "¿quieres hacer esto o dejar esto?", las respuestas siguen siendo las mismas. Además, a veces hay un error ANT que me pide que presione '1' hasta que el script continúe.

5: ejecute el script C, que es muy similar al script B. Sin embargo, en un momento, está a punto de ejecutar un paso en particular y debo presionar manualmente 'control c' para salir.

Soy un novato en secuencias de comandos, pero si alguien pudiera decirme o darme una idea de cómo podría hacer esto, sería genial. Pensé que tal vez me vendría bien esperar.

Aún mejor, sería si pudiera hacer clic en algún archivo EXE en mi computadora portátil con Windows y lo hiciera todo. ¿Es eso siquiera posible?

Respuesta1

Parece que deberías mirar dos cosas:

  1. Editar el script anterior para realizar algunas de las comprobaciones automáticamente (la marca de tiempo, por ejemplo), o eliminar las indicaciones (buscar readcomandos) y responder con los valores predeterminados.
  2. Usando una herramienta diseñada exactamente para esta tarea, comoansible.

Si quieres aprender algo nuevo y mejorar tu CV de administrador de sistemas, miraría la segunda opción, ¡aunque la primera debería funcionar bien a corto plazo!

Si comienza con la primera opción que mencioné, intente hacer que el Script A no requiera un mensaje; use la datefunción para obtener la fecha actual, tal vez, y realice la verificación automáticamente. Si lo que está comparando es una fecha de los archivos que acaba de copiar, debería poder utilizar herramientas como findo lspara obtener esa información.

Al ejecutar el script C, debería ser trivial ingresar un exitcomando donde normalmente presionaría CtrlC.

Sobre todo¡Recuerde probar esto en cajas que no sean críticas! No querrás vomitar la configuración de producción mientras pirateas guiones antiguos...

información relacionada