![如何在另一台机器上重现一台机器上运行的命令?](https://linux22.com/image/42037/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%8F%A6%E4%B8%80%E5%8F%B0%E6%9C%BA%E5%99%A8%E4%B8%8A%E9%87%8D%E7%8E%B0%E4%B8%80%E5%8F%B0%E6%9C%BA%E5%99%A8%E4%B8%8A%E8%BF%90%E8%A1%8C%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我想在我在 VirtualBox 中运行的 Linux 机器上安装一些软件。然后我想在 linux-VPS 上做同样的事情。
我认为我可以保存使用该history
命令运行的所有命令。有什么办法可以在另一台机器上运行这些命令吗?或者说有什么方法可以做到这样的事情?
答案1
好吧,我想象这里有两种情况:
如果我需要运行少量命令,我会在任何其他机器上再次运行它们(少量是指少于 10 个)
如果我需要运行许多命令,我会将它们放入 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