Browse Source

fix select dd or ntfsclone option from script - 18.11.21:16.22

root 3 years ago
parent
commit
8336f39739
1 changed files with 16 additions and 13 deletions
  1. 16 13
      kvm-snapshot.sh

+ 16 - 13
kvm-snapshot.sh

@@ -2,22 +2,25 @@
2
 # The script is designed to create or restore an image of a virtual machine kvm (c) 2018
2
 # The script is designed to create or restore an image of a virtual machine kvm (c) 2018
3
 # author Koshuba V.O.
3
 # author Koshuba V.O.
4
 # license: MIT
4
 # license: MIT
5
-# version: 4.0.5
5
+# version: 4.0.10
6
 ##
6
 ##
7
 
7
 
8
 #<manual_parameters>
8
 #<manual_parameters>
9
-path_kvm=( "/kvm/win2012" "/kvm/win2008" );			# path kvm machines
10
-path_bak=( "/backup/kvm/win2012" "/backup/kvm/win2008" );	# path backup kvm machines
9
+path_kvm=( "/kvm/ms1" "/kvm/ms2" );				# path kvm machines
10
+path_bak=( "/backup/kvm/ms1" "/backup/kvm/ms2"  );		# path backup kvm machines
11
 img_dev=( "sda.img" "sda.img" );				# storage kvm
11
 img_dev=( "sda.img" "sda.img" );				# storage kvm
12
-img_part=( '"sda1" "sda2" "sda3" "sda4"' '"sda1"' );		# sections in media kvm
13
-img_type=( '"dd" "dd" "dd" "ntfsclone"' '"ntfsclone"' );	# type backup partition:dd[fat,EFI System,Windows recovery environment,Microsoft reserved],ntfsclone[ntfs,Microsoft basic data]
14
-img_size=( '"300" "99" "128"' '""' );				# size partition for dd (Mb)
12
+img_part=( '"sda1" "sda2" "sda3" "sda4"'
13
+           '"sda1" "sda2" "sda3" "sda4"' );			# sections in media kvm
14
+img_type=( '"dd" "dd" "dd" "ntfsclone"'
15
+           '"dd" "dd" "dd" "ntfsclone"' );			# type backup partition:dd[fat,EFI System,Windows recovery environment,Microsoft reserved],ntfsclone[ntfs,Microsoft basic data]
16
+img_size=( '"300" "99" "128" ""'
17
+           '"300" "99" "128" ""' );				# size partition for dd (Mb)
15
 img_offset=( '"1048576" "315621376" "419430400" "553648128"'
18
 img_offset=( '"1048576" "315621376" "419430400" "553648128"'
16
-             '"1048576"' );					# offset for switch section media kvm
19
+             '"1048576" "315621376" "419430400" "553648128"' );	# offset for switch section media kvm
17
 #</manual_parameters>
20
 #</manual_parameters>
18
 
21
 
19
 #<script_value>
22
 #<script_value>
20
-version="4.0.5";
23
+version="4.0.10";
21
 owner="(c) script by Koshuba V.O. 2018";
24
 owner="(c) script by Koshuba V.O. 2018";
22
 msg_dat=( '"Script to save or restore the image KVM" "Скрипт сохранения или восстановления образа KVM"'
25
 msg_dat=( '"Script to save or restore the image KVM" "Скрипт сохранения или восстановления образа KVM"'
23
           '"MAIN MENU" "ГЛАВНОЕ МЕНЮ"'
26
           '"MAIN MENU" "ГЛАВНОЕ МЕНЮ"'
@@ -383,15 +386,15 @@ for ((iskvm=0; iskvm != ${#save_dev[@]}; iskvm++))
383
     losetup -o ${save_offset[$iskvm]} /dev/$set_loop_dev /dev/$set_loop_main;
386
     losetup -o ${save_offset[$iskvm]} /dev/$set_loop_dev /dev/$set_loop_main;
384
     if [ "${save_type[$iskvm]}" == "ntfsclone" ];
387
     if [ "${save_type[$iskvm]}" == "ntfsclone" ];
385
 	    then
388
 	    then
386
-	    ntfsclone --save-image -o - /dev/$set_loop_dev| pigz -p2 -c9>$save_bak/${save_dev[$iskvm]}.img.gz;
389
+	    ntfsclone --save-image -o - /dev/$set_loop_dev| pigz -p2 -c9>$save_bak/${save_dev[$iskvm]}_ntfs.img.gz;
387
 	fi
390
 	fi
388
 	if [ "${save_type[$iskvm]}" == "dd" ];
391
 	if [ "${save_type[$iskvm]}" == "dd" ];
389
 	    then
392
 	    then
390
 		if [ "${save_size[$iskvm]}" != "" ];
393
 		if [ "${save_size[$iskvm]}" != "" ];
391
 		    then
394
 		    then
392
-		    dd if=/dev/$set_loop_dev of=$save_bak/${save_dev[$iskvm]}_dd.img.gz status=progress bs=${save_size[$iskvm]}M count=1;
395
+		    dd if=/dev/$set_loop_dev status=progress bs=${save_size[$iskvm]}M count=1|pigz -p4 -M -c9>$save_bak/${save_dev[$iskvm]}_dd.img.gz;
393
 		    else
396
 		    else
394
-		    echo "Warning! not found size partition ${save_dev[$iskvm]} for dd!";
397
+		    dd if=/dev/$set_loop_dev status=progress|pigz -p4 -M -c9>$save_bak/${save_dev[$iskvm]}_dd.img.gz;
395
 		fi
398
 		fi
396
 	    
399
 	    
397
 	fi
400
 	fi
@@ -430,9 +433,9 @@ for ((irkvm=0; irkvm != ${#rest_dev[@]}; irkvm++))
430
 	    then
433
 	    then
431
 		if [ "${rest_size[$irkvm]}" != "" ];
434
 		if [ "${rest_size[$irkvm]}" != "" ];
432
 		    then
435
 		    then
433
-		    dd if=$rest_bak/${rest_dev[$irkvm]}_dd.img.gz of=/dev/$set_loop_rdev status=progress bs=${rest_size[$irkvm]}M count=1;
436
+		    pigz -p4 -c -d -M $rest_bak/${rest_dev[$irkvm]}_dd.img.gz|dd of=/dev/$set_loop_rdev status=progress bs=${rest_size[$irkvm]}M count=1;
434
 		    else
437
 		    else
435
-		    echo "Warning! not found size partition ${rest_dev[$irkvm]} for dd!";
438
+		    pigz -p4 -c -d -M $rest_bak/${rest_dev[$irkvm]}_dd.img.gz|dd of=/dev/$set_loop_rdev status=progress;
436
 		fi
439
 		fi
437
 	fi
440
 	fi
438
 	if [ "${rest_type[$irkvm]}" != "ntfsclone" ] && [ "${rest_type[$irkvm]}" != "dd" ];
441
 	if [ "${rest_type[$irkvm]}" != "ntfsclone" ] && [ "${rest_type[$irkvm]}" != "dd" ];