From 2933d89e95b3be77eb30660a9b7c7261fa831d54 Mon Sep 17 00:00:00 2001 From: Ste Vaidis Date: Tue, 27 Dec 2022 23:11:28 +0200 Subject: [PATCH] fix luks close timing --- backup.sh | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/backup.sh b/backup.sh index 376961f..4e4c4fa 100755 --- a/backup.sh +++ b/backup.sh @@ -52,8 +52,26 @@ function find_usb() { return 1 } + +function mount_luks() { + for n in `seq 0 9`; do + log " trying to mount /dev/mapper/crypted_usb" + waiting=$(grep 'Dirty\|Writeback' /proc/meminfo | grep Writeback: | awk {'print $2'}) + if [[ wating -eq "0" ]]; then + echo $1 | /usr/sbin/cryptsetup luksOpen $2 crypted_usb + log "[ OK ] mounted /dev/mapper/crypted_usb" + return 0 + else + log "[FAIL] mounted /dev/mapper/crypted_usb" + fi + sleep 2 + done + echo "R1" + return 1 +} + function mount_usb() { - echo $LUKS_PASS | /usr/sbin/cryptsetup luksOpen $USB_PARTITION crypted_usb + mount_luks $LUKS_PASS $USB_PARTITION if [ $? = 0 ]; then log "[ OK ] $USB_PARTITION decrypted" /usr/bin/mount /dev/mapper/crypted_usb /mnt/usb @@ -136,11 +154,24 @@ function check_copy () { return 0 } +function luks_close() { + for n in `seq 0 9`; do + waiting=$(grep 'Dirty\|Writeback' /proc/meminfo | grep Writeback: | awk {'print $2'}) + if [[ waiting -eq "0" ]]; then + cryptsetup luksClose /dev/mapper/crypted_usb + return 0 + fi + sleep 2 + done + echo "R1" + return 1 +} + function umount_usb() { if /usr/bin/umount $USB_MOUNT; then if [ $? = 0 ]; then log "[ OK ] umount usb disk" - cryptsetup luksClose /dev/mapper/crypted_usb + luks_close if [ $? = 0 ]; then log "[ OK ] close disk encryption" return 0