This repository has been archived by the owner on May 25, 2021. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathexport.sh
executable file
·33 lines (26 loc) · 1.66 KB
/
export.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
VMID=`vboxmanage list vms | grep musicbrainz-vm | grep -o '[a-fA-F0-9]\{8\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{12\}'`
ROOT_ID=`vboxmanage showvminfo musicbrainz-vm | grep 'SATA Controller (0, 0)' | grep -o '[a-fA-F0-9]\{8\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{12\}'`
ROOT_FILE=`vboxmanage showvminfo --machinereadable musicbrainz-vm | grep 'SATA Controller-0-0' | awk -F\" '{print $4}'`
PG_ID=`vboxmanage showvminfo musicbrainz-vm | grep 'SATA Controller (1, 0)' | grep -o '[a-fA-F0-9]\{8\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{12\}'`
PG_FILE=`vboxmanage showvminfo --machinereadable musicbrainz-vm | grep 'SATA Controller-1-0' | awk -F\" '{print $4}'`
VM_DIR=$(dirname "${ROOT_FILE}")
DATE=`date +%Y-%m-%d`
echo -n "==="
echo -n `date`
echo "=== start export of MusicBrainz VM:"
echo "=== VM UUID: $VMID $VM_DIR"
echo "=== root fs UUID: $ROOT_ID $ROOT_FILE"
echo "=== postgres fs UUID: $PG_ID $PG_FILE"
echo
echo "=== remove shared folders"
vboxmanage sharedfolder remove $VMID --name vagrant
echo "=== compact postgres fs:"
vboxmanage modifymedium --compact $PG_ID
echo "=== clone, compact main fs:"
vboxmanage clonemedium --format VDI $ROOT_ID "$VM_DIR/box-disk1.vdi"
vboxmanage storageattach $VMID --storagectl 'SATA Controller' --device 0 --port 0 --type hdd --medium "$VM_DIR/box-disk1.vdi"
ROOT_ID=`vboxmanage showvminfo musicbrainz-vm | grep 'SATA Controller (0, 0)' | grep -o '[a-fA-F0-9]\{8\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{4\}-[a-fA-F0-9]\{12\}'`
vboxmanage modifymedium --compact $ROOT_ID
echo "=== export OVA"
vboxmanage export $VMID -o "musicbrainz-server-$DATE.ova"