Browse Source

add function backup some images from vm 20.05.2022:18.21

root 2 years ago
parent
commit
3cb3dc3bb7
1 changed files with 37 additions and 27 deletions
  1. 37 27
      kvm-snapshot-dd.sh

+ 37 - 27
kvm-snapshot-dd.sh

@@ -1,21 +1,18 @@
1 1
 #!/bin/bash
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) 2022
3 3
 # author Koshuba V.O.
4 4
 # license: MIT
5
-# version: 5.0.2
5
+# version: 5.1.0
6 6
 ##
7 7
 
8 8
 #<manual_parameters>
9
-path_kvm=(	"/kvm/vm1"
10
-	        "/kvm/vm2" );			# path kvm machines
11
-path_bak=(	"/backup/kvm/vm1" 
12
-		"/backup/kvm/vm2"  );		# path backup kvm machines
13
-img_dev=(	"sda.img"
14
-		"sda.img" );			# storage kvm
9
+path_kvm=(	"/kvm/vm1" "/kvm/vm2" );			# path kvm machines
10
+path_bak=(	"/backup/kvm/vm1" "/backup/kvm/vm2"  );		# path backup kvm machines
11
+img_dev=(	'"sda.img"' '"sda.img" "sdb.img"'  )		# storage kvm (vm1 - sda.img; vm2 - sda.img,sdb.img)
15 12
 #</manual_parameters>
16 13
 
17 14
 #<script_value>
18
-version="5.0.2";
15
+version="5.1.0";
19 16
 owner="(c) script by Koshuba V.O. 2021";
20 17
 msg_dat=( '"Script to save or restore the image KVM" "Скрипт сохранения или восстановления образа KVM"'
21 18
           '"MAIN MENU" "ГЛАВНОЕ МЕНЮ"'
@@ -357,30 +354,43 @@ done
357 354
 
358 355
 function saveKvm() {
359 356
 local save_kvm="${path_kvm[$set_kvm]}";
360
-local save_bak="${path_bak[$set_kvm]}/$rdate";
361
-local save_img=$(echo "${img_dev[$set_kvm]}"|sed 's/\./ /g'|awk '{print$1}');
362
-local set_loop_main="$(losetup -f|grep -v loop-control|sed 's/\/\dev\///g')";
363
-losetup /dev/$set_loop_main $save_kvm/$save_img.img;
357
+local save_bak="${path_bak[$set_kvm]}/$rdate"
358
+eval set_images="(" ${img_dev[$set_kvm]} ")";
364 359
 
365
-if [[ ! -d $save_bak ]];
366
-    then
367
-    mkdir -p $save_bak;
368
-fi
360
+for ((step_i=0; step_i != ${#set_images[@]}; step_i++))
361
+ do
362
+    local save_img=$(echo "${set_images[$step_i]}"|sed 's/\./ /g'|awk '{print$1}');
363
+    local set_loop_main="$(losetup -f|grep -v loop-control|sed 's/\/\dev\///g')";
364
+    losetup /dev/$set_loop_main $save_kvm/$save_img.img;
365
+
366
+    if [[ ! -d $save_bak ]];
367
+	then
368
+	mkdir -p $save_bak;
369
+    fi
370
+
371
+    sfdisk -d /dev/$set_loop_main >$save_bak/$save_img-info_sfdisk.txt;
372
+    sfdisk -l /dev/$set_loop_main >$save_bak/$save_img-info_disk.txt;
373
+    dd if=/dev/$set_loop_main status=progress |pigz -p4 -M -c9>$save_bak/$save_img-dd.img.gz;
374
+    losetup -d /dev/$set_loop_main;
375
+done
369 376
 
370
-sfdisk -d /dev/$set_loop_main >$save_bak/info_sfdisk.txt;
371
-sfdisk -l /dev/$set_loop_main >$save_bak/info_disk.txt;
372
-dd if=/dev/$set_loop_main status=progress |pigz -p4 -M -c9>$save_bak/$save_img-dd.img.gz;
373
-losetup -d /dev/$set_loop_main;
374 377
 }
375 378
 
376 379
 function restoreKvm() {
377 380
 local rest_kvm="${path_kvm[$set_kvm]}";
378
-local rest_bak="${path_bak[$set_kvm]}/$set_img";
379
-local rest_img=$(echo "${img_dev[$set_kvm]}"|sed 's/\./ /g'|awk '{print$1}');
380
-local set_loop_rmain="$(losetup -f|grep -v loop-control|sed 's/\/\dev\///g')";
381
-losetup /dev/$set_loop_rmain $rest_kvm/$rest_img.img;
382
-pigz -p4 -c -d -M $rest_bak/$rest_img-dd.img.gz|dd of=/dev/$set_loop_rmain status=progress;
383
-losetup -d /dev/$set_loop_rmain;
381
+local rest_path="${path_bak[$set_kvm]}/$set_img";
382
+eval set_reimages="(" ${img_dev[$set_kvm]} ")";
383
+##
384
+for ((step_i=0; step_i != ${#set_reimages[@]}; step_i++))
385
+ do
386
+    
387
+    local rest_img=$(echo "${set_reimages[$step_i]}"|sed 's/\./ /g'|awk '{print$1}');
388
+    local rest_bak="$rest_path/$rest_img-dd.img.gz";
389
+    local set_loop_rmain="$(losetup -f|grep -v loop-control|sed 's/\/\dev\///g')";
390
+    losetup /dev/$set_loop_rmain $rest_kvm/$rest_img.img;
391
+	pigz -p4 -c -d -M $rest_bak|dd of=/dev/$set_loop_rmain status=progress;
392
+    losetup -d /dev/$set_loop_rmain;
393
+done
384 394
 }
385 395
 
386 396
 #</functions>