2017-11-26 14 views
2

「親」仮想マシン(peer00)から仮想マシンを複製するためにできるだけシンプルなbashスクリプトを作成しようとしています。これらのマシンを複製するには、まずスナップショットが必要です。仮想マシンでスナップショットを削除して作成するためのBashスクリプト

vboxmanage snapshot peer00 delete "MySnapShot" 
vboxmanage snapshot peer00 take "MySnapShot" 

# for loop to create several machines 

は今、私は(明らかに)次のエラーを取得する何MySnapShotスナップショットが存在しない場合、私はこのスクリプトを実行する場合:私はそれを実行した場合一方

VBoxManage: error: Could not find a snapshot named 'MySnapShot' VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component SessionMachine, interface IMachine, callee nsISupports VBoxManage: error: Context: "FindSnapshot(Bstr(a->argv[2]).raw(), pSnapshot.asOutParam())" at line 514 of file VBoxManageSnapshot.cpp

、スナップショットは、すでに私を存在している間

0%... Progress state: NS_ERROR_FAILURE VBoxManage: error: Snapshot operation failed VBoxManage: error: Hard disk '/home/pietro/VirtualBox VMs/peer00/Snapshots/{0183ad41-71b6-41bf-af74-38db828b2d82}.vdi' has more than one child hard disk (7) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component SessionMachine, interface IMachine VBoxManage: error: Context: "RTEXITCODE handleSnapshot(HandlerArg*)" at line 532 of file VBoxManageSnapshot.cpp

スナップショットを削除しようとする前に既に存在するかどうかをチェックする「if文」を書くにはどうすればいいですか?さらに、なぜ2番目のエラーが発生していますか?私は本当にリストサブコマンド使用してスナップショットがあるかどうかをチェックでき

+0

* - uniquename *パラメータ(Number、Timestamp、Space、Force値をサポートしています)があります。その動作をチェックする価値があるかもしれません。 –

答えて

0

を理解していない:

vboxmanage snapshot peer00 delete "My Snapshot" ||\ echo "No snapshot"

vboxmanage snapshot peer00 list |\ grep "MySnapshot" &&\ vboxmanage snapshot peer00 delete "MySnapShot" ||\ echo "No snapshot"

を代替したばかり削除失敗を無視することです

関連する問題