回答:
さて、私はここで2つの状況を想像します:
少数のコマンドを実行する必要がある場合は、他のマシンで再度実行するだけです(少数というのは、10未満という意味です)。
多くのコマンドを実行する必要がある場合は、それらをbashスクリプトに入れて、他のすべてのマシンでスクリプトを実行します。スクリプトは次のようになります。
#!/bin/bash
command 1
command 2
command 3
command 4
一部のコマンドの結果が不明な場合は、コマンドを&&
で区切ることができます。つまり、前のコマンドが成功した場合にのみ次のコマンドが実行されます。command1 && command2
つまり、command1が失敗した場合、command2は実行されません。
Patkosは正解です。おそらくスクリプトを作成するのが最善です。ただし、これについては、正しくなるまで実験し、何をしたか、何が結果だったかのログが必要になる場合があります。ここではツールscript
が便利です。
実行しているターミナルでのすべてのアクティビティの記録を作成します。
スクリプトは、端末に出力されるすべてのタイプスクリプトを作成します。後でlpr(1)を使用してtypescriptファイルを印刷できるので、インタラクティブセッションのハードコピーレコードが課題の証明として必要な学生に役立ちます。
http://docs.fabfile.org/0.9.2/ <---ステップが失敗した場合にアクションを実行できるため、スクリプトの代わりに使用できます
この種のことを簡単にするために、Overcastというオープンソースツールを作成しました。
Virtualboxマシンをローカルで(フードの下でVagrantを使用して)スピンアップしたり、さまざまなクラウドプロバイダー上でスピンアップしたり、それらすべてでコマンドやスクリプトファイルを実行したりできます。
# 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
最初にコマンドを1つのマシンで対話的に実行し、次にスクリプトを他のマシンで実行する場合は、テキストエディターで.bash_history(またはシェルが使用するもの)を開き、最初に行った間違いをすべて削除します。周り。出来上がり!他のマシンにコピーできるスクリプトがあります(scp、rsyncなど)。
場合によっては、最初にファイルを少し処理する必要があります。たとえば、zshを使用して、さまざまなメタデータ(日付スタンプ)を追加するように構成しています。明らかに、これを削除する必要があります。これは、vimやTextMate、またはおそらくブロック選択を使用した適切なエディターで簡単に実行できます。または、awkまたはcutを使用して、メタデータ以外のすべてを出力できます。これを行う1つの方法を次に示します。
cat .zhistory | cut -d';' -f2-
しかし、ほとんどの場合、履歴ファイルはコマンドの単なるリストであるため、このようなマッサージについて心配する必要はありません。