如何在另一台机器上重现一台机器上运行的命令?

如何在另一台机器上重现一台机器上运行的命令?

我想在我在 VirtualBox 中运行的 Linux 机器上安装一些软件。然后我想在 linux-VPS 上做同样的事情。

我认为我可以保存使用该history命令运行的所有命令。有什么办法可以在另一台机器上运行这些命令吗?或者说有什么方法可以做到这样的事情?

答案1

好吧,我想象这里有两种情况:

  1. 如果我需要运行少量命令,我会在任何其他机器上再次运行它们(少量是指少于 10 个)

  2. 如果我需要运行许多命令,我会将它们放入 bash 脚本中,并在所有其他计算机上运行该脚本。该脚本应如下所示:

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

如果您不确定某些命令的结果,可以用 分隔命令&&,这意味着仅当上一个命令成功时才会执行下一个命令。command1 && command2表示如果command1失败则不会执行command2。

答案2

有几种工具允许您同时登录多台计算机并在多台计算机上执行一系列命令。这里有几个:

答案3

Patkos 是对的,也许最好创建一个脚本。然而,为此,有时您必须进行试验,直到正确为止,并且需要一些记录您所做的事情和结果。这里这个工具script就派上用场了。

它会创建其正在运行的终端中所有活动的记录:

脚本将终端上打印的所有内容制作成打字稿。对于需要交互式会话的硬拷贝记录作为作业证明的学生来说,它非常有用,因为稍后可以使用 lpr(1) 打印打字稿文件。

答案4

我构建了一个开源工具,名为灰蒙蒙使这种事情变得更容易。

您可以在本地(在后台使用 Vagrant)或在一堆不同的云提供商上启动 Virtualbox 机器,然后在所有这些机器上运行任何命令或脚本文件:

# 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

相关内容