VM Backup

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
#!/bin/bash
 
# ------------ ranko skoric ---------- #
# ------- VirtualBox - Backup -------- # 
# ------------ 05.02.2021 ------------ #
# ------------------------------------ #
 
# ------------------------------------ # 
 
 
# Vorsicht! Ordner Name und Virtuell Maschine Name müssen identisch sein. 
vmfolder="/daten/vm/" # Virtuell Maschine Ordner
bfolder="/backup/vm/" # Backup speicher Ort
r="ver" # verion name
m=2 # version anzahl
 
# ------------------
after=$m
# ------------------------------------ # 
 
a=1
end=`VBoxManage list runningvms | wc -l`
let "end++"
echo "$end"
vm=`VBoxManage list runningvms | awk 'NR=='$a' {print $1}' | sed 's/"//g'`;
 
# ----------------------------------- #
 
while [ $a -lt $end ]
    do
        echo "$vm $end $a"
# ################################ #
# diese schleife erstellt version anzahl virteulen maschinen und löscht die alten
 
			let irm=$m-1
			rm -r $bfolder$vm/$r.$irm 
				while [ $m -gt 1 ]
				do
				# echo $r.$m 
				let "m--"
				af=$m
				let "af--"
				new=$(printf "$r.%0d" $af )
				echo $new $r.$m
				mv $bfolder$vm/$new $bfolder$vm/$r.$m
				sleep 1
				done
			m=$after
			echo "$m"
			mkdir -p $bfolder$vm/$r.0
 
 
# ################################ #
 
# diese schleife überprüft und wartet dass Virtuell Maschine gespeichert ist. 
		VBoxManage controlvm $vm savestate
		i=1
		while [ $i -gt 0 ]
			do
			i=`VBoxManage list runningvms | grep -c $vm`
			echo "$i"
				echo "waiting for VMs to shutdown"
				sleep 5
			done
# ----------------------------------- # 	
		echo "backup wird gestarte für $vm machine"
		rsync -av --delete --progress $vmfolder$vm/ $bfolder$vm/$r.0
		VBoxManage startvm $vm --type headless  
# ------------------------------------ #
        let "a++"
        vm=`VBoxManage list runningvms | awk 'NR=='$a' {print $1}' | sed 's/"//g'`;        
# ------------------------------------ #
        sleep 3
   done
echo "the end"
1
2
VBoxManage startvm 2016stand --type emergencystop
VBoxManage startvm 2016stand --type headless