¿Cómo puedo reproducir commands ejecutados en una máquina en otra máquina?

Me gustaría instalar algún software en una máquina Linux que he ejecutado en VirtualBox. Entonces me gustaría hacer lo mismo en un linux-VPS.

Creo que puedo save todos los commands que ejecuto usando el command history . ¿Hay alguna manera de que pueda ejecutar estos commands en otra máquina? ¿O cuál es la manera de hacer tales cosas?

Solutions Collecting From Web of "¿Cómo puedo reproducir commands ejecutados en una máquina en otra máquina?"

Bueno, me imagino 2 situaciones aquí:

  1. Si necesito ejecutar un pequeño número de commands, simplemente los volvería a ejecutar en cualquier otra máquina (por un número pequeño quiero decir less de 10)

  2. Si necesito ejecutar muchos commands los pondría en un script bash y ejecutaría el script en todas las demás máquinas. El script debería verse así:

     #!/bin/bash command 1 command 2 command 3 command 4 

Si no está seguro del resultado de algunos commands, puede separar los commands por && , lo que significa que el próximo command se ejecutará solo si el anterior fue exitoso. command1 && command2 significa que command2 no se ejecutará si falla el command1.

Existen varias herramientas que le permiten iniciar session y ejecutar series de commands en varias máquinas al mismo time. Aquí hay una pareja:

  • pssh
  • pdsh
  • clusterssh
  • clusterit
  • Mushsh

Patkos tiene razón, probablemente sea mejor crear un guión. Sin embargo, para esto, a veces tienes que experimentar hasta que lo hagas bien y necesites un logging de lo que hiciste y cuál fue el resultado. Aquí el script la herramienta es útil.

Crea un logging de toda la actividad en el terminal en el que se ejecuta:

Script crea un text a máquina de todo lo impreso en su terminal. Es útil para los estudiantes que necesitan un logging en papel de una session interactiva como testing de una tarea, ya que el file typescript puede imprimirse más tarde con lpr (1).

http://docs.fabfile.org/0.9.2/ <— Buen reemploop para los scripts ya que puede tomar medidas si falla un paso

Creé una herramienta de código abierto llamada Overcast para facilitar este tipo de cosas.

Puede hacer girar las máquinas de Virtualbox localmente (usa Vagrant bajo el capó) o en un montón de proveedores de nube diferentes, y luego ejecutar cualquier command o file de script en todos ellos:

 # Spin up Ubuntu 14.04 instances on Virtualbox, DigitalOcean, and Linode: overcast virtualbox create vm.01 overcast digitalocean create vm.02 overcast linode create vm.03 # Run an arbitrary sequence of commands and scripts across all of them: overcast run vm.* uptime "free -m" ./path/to/my-script.sh 

Si primero quieres ejecutar los commands de forma interactiva en un equipo y luego tienes un script para ejecutarlos en otros, simplemente abre tu .bash_history (o lo que sea que use tu shell) en un editor de text, y elimina los errores que cometiste la primera vez alnetworkingedor. Voila! Tienes un script que puedes copyr a las otras máquinas (con scp, rsync, lo que sea).

En algunos casos, es posible que deba procesar el file un poco primero. Por ejemplo, uso zsh y lo configuro para agregar varios metadatos (marca de date). Obviamente, necesitarías eliminar esto. Puede hacer esto fácilmente en vim o TextMate, o probablemente cualquier editor decente que use la selección de bloque. O puede usar awk o cut para generar todo excepto los metadatos. Aquí hay una manera de hacer esto:

 cat .zhistory | cut -d';' -f2- 

Pero la mayoría de las veces encontrará que su file de historia es solo una list de commands, por lo que probablemente no tenga que preocuparse por nada de este masaje.