Answers:
好吧,我想这里有两种情况:
如果我需要运行少量命令,则只需在其他任何机器上再次运行它们(如果数量少,我的意思是少于10个)
如果我需要运行许多命令,可以将它们放入bash脚本中,然后在所有其他计算机上运行该脚本。该脚本应如下所示:
#!/bin/bash
command 1
command 2
command 3
command 4
如果不确定某些命令的结果,可以用分隔命令&&
,这意味着只有前一个命令成功执行后,下一个命令才会执行。command1 && command2
表示如果command1失败,则不会执行command2。
Patkos是正确的,可能最好创建一个脚本。但是,为此,有时您必须反复试验,直到正确,并需要一些记录您所做的事情以及结果是什么。工具script
在这里非常方便。
它在其运行的终端中创建所有活动的记录:
脚本将对您终端上打印的所有内容进行打字。这对于需要交互式会话的硬拷贝记录作为作业证明的学生很有用,因为以后可以使用lpr(1)打印出打字稿文件。
http://docs.fabfile.org/0.9.2/ <---很好地替换了脚本,因为如果步骤失败,它可以采取措施
我构建了一个名为Overcast的开源工具,以简化此类操作。
您可以在本地(在后台使用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
如果要首先在一台计算机上交互式运行命令,然后让脚本在其他计算机上运行,只需在文本编辑器中打开.bash_history(或您的Shell使用的任何内容),然后删除第一次遇到的任何错误即可周围。瞧!您已经有了一个脚本,可以将其复制到其他计算机上(使用scp,rsync等)。
在某些情况下,您可能必须先稍微处理文件。例如,我使用zsh,并将其配置为添加各种元数据(datestamp)。显然,您需要删除它。您可以在vim或TextMate或任何使用块选择的不错的编辑器中轻松地做到这一点。或者,您可以使用awk或cut来输出除元数据以外的所有内容。这是执行此操作的一种方法:
cat .zhistory | cut -d';' -f2-
但是大多数时候,您会发现历史记录文件只是命令的直接列表,因此您可能无需担心任何此类按摩。