Prune old Nextcloud database dumps, and fix "safely disconnect".
authorMatt Birkholz <matt@birchwood-abbey.net>
Sat, 15 Mar 2025 21:04:59 +0000 (16:04 -0500)
committerMatt Birkholz <matt@birchwood-abbey.net>
Sat, 15 Mar 2025 21:04:59 +0000 (16:04 -0500)
Use mountpoint to check that the backup is un-mounted regardless, and
suggest it can be safely disconnected only when there were no errors.

README.org
private/backup

index 9777739de5da310b210dc724b5c477d7e5690c27..09ad048cfda1f9afa24b57dc2d3eb7b132daa38b 100644 (file)
@@ -641,10 +641,8 @@ function start () {
        echo "Mounting /backup/."
        cryptsetup luksOpen /dev/disk/by-partlabel/Backup backup
        mount /dev/mapper/backup /backup
-       mounted=indeed
     else
        echo "Found /backup/ already mounted."
-       mounted=
     fi
 
     if [ ! -d /backup/home ]
@@ -663,10 +661,13 @@ function start () {
        echo "Dumping nextcloud database."
        ( cd /Nextcloud/
          umask 07
-         BAK=`date +"%Y%m%d"`-dbbackup.bak.gz
+         BAK=`date +"%Y%m%d%H%M"`-dbbackup.bak.gz
          CNF=/Nextcloud/dbbackup.cnf
          mysqldump --defaults-file=$CNF nextcloud | gzip > $BAK
-         chmod 440 $BAK )
+         chmod 440 $BAK
+         ls -t1 *-dbbackup.bak.gz | tail -n +4 \
+         | while read; do rm "$REPLY"; done
+       )
     fi
 
 }
@@ -680,16 +681,14 @@ function finish () {
          sudo -u www-data php occ maintenance:mode --off &>/dev/null )
     fi
 
-    if [ $mounted ]
+    if mountpoint -q /backup/
     then
        echo "Unmounting /backup/."
        umount /backup
        cryptsetup luksClose backup
-       mounted=
+       echo "Done."
+       echo "The backup device can be safely disconnected."
     fi
-    echo "Done."
-    echo "The backup device can be safely disconnected."
-
 }
 
 start
index 041c33b913a3e1c71557911b20ee57b809c41e68..d9ebb8d46b4f6b1a77569c92cadae24775d0ab48 100644 (file)
@@ -36,10 +36,8 @@ function start () {
        echo "Mounting /backup/."
        cryptsetup luksOpen /dev/disk/by-partlabel/Backup backup
        mount /dev/mapper/backup /backup
-       mounted=indeed
     else
        echo "Found /backup/ already mounted."
-       mounted=
     fi
 
     if [ ! -d /backup/home ]
@@ -58,10 +56,13 @@ function start () {
        echo "Dumping nextcloud database."
        ( cd /Nextcloud/
          umask 07
-         BAK=`date +"%Y%m%d"`-dbbackup.bak.gz
+         BAK=`date +"%Y%m%d%H%M"`-dbbackup.bak.gz
          CNF=/Nextcloud/dbbackup.cnf
          mysqldump --defaults-file=$CNF nextcloud | gzip > $BAK
-         chmod 440 $BAK )
+         chmod 440 $BAK
+         ls -t1 *-dbbackup.bak.gz | tail -n +4 \
+         | while read; do rm "$REPLY"; done
+       )
     fi
 
 }
@@ -75,16 +76,14 @@ function finish () {
          sudo -u www-data php occ maintenance:mode --off &>/dev/null )
     fi
 
-    if [ $mounted ]
+    if mountpoint -q /backup/
     then
        echo "Unmounting /backup/."
        umount /backup
        cryptsetup luksClose backup
-       mounted=
+       echo "Done."
+       echo "The backup device can be safely disconnected."
     fi
-    echo "Done."
-    echo "The backup device can be safely disconnected."
-
 }
 
 start