Thomas,
Week 48 backups are never removed.
In some years, Week 47 backups are also never removed.
There are two problems:
1) The calculations to determine REMW are broken.
They incorrectly assume the last Saturday of the year is in ISO week 53.
Actually, it is 52 (89%) or 51 (11%).
The following would be correct:
REMW=$(date -d '-35 days' +%V)
2) Ancient backups are never removed.
Below is an untested patch which should fix these.
Thank you!
Daniel Lewart
Urbana, Illinois
---
diff -ru a/usr/sbin/automysqlbackup b/usr/sbin/automysqlbackup
--- a/usr/sbin/automysqlbackup 2021-08-30 09:50:19.000000000 -0500
+++ b/usr/sbin/automysqlbackup 2023-02-09 00:00:00.000000000 -0600
@@ -596,14 +596,7 @@
if [ "$DNOW" = "$DOWEEKLY" ]; then
echo Weekly Backup of Database \( $DB \)
echo Rotating 5 weeks Backups...
- if [ "$W" -le 05 ];then
- REMW=`expr 48 + $W`
- elif [ "$W" -lt 15 ];then
- REMW=0`expr $W - 5`
- else
- REMW=`expr $W - 5`
- fi
- rm -fv "$BACKUPDIR/weekly/$DB/${DB}_week.$REMW".*
+ find "$BACKUPDIR/weekly/$DB" -mtime +30 -print -delete
echo
dbdump "$DB" "$BACKUPDIR/weekly/$DB/${DB}_week.$W.$DATE.sql"
BACKUPFILES="$BACKUPFILES $BACKUPDIR/weekly/$DB/${DB}_week.$W.$DATE.sql$SUFFIX"
@@ -640,14 +633,7 @@
echo Weekly Backup of Databases \( $DBNAMES \)
echo
echo Rotating 5 weeks Backups...
- if [ "$W" -le 05 ];then
- REMW=`expr 48 + $W`
- elif [ "$W" -lt 15 ];then
- REMW=0`expr $W - 5`
- else
- REMW=`expr $W - 5`
- fi
- rm -fv "$BACKUPDIR/weekly/week.$REMW".*
+ find "$BACKUPDIR/weekly" -mtime +30 -print -delete
echo
dbdump "$DBNAMES" "$BACKUPDIR/weekly/week.$W.$DATE.sql"
BACKUPFILES="$BACKUPFILES $BACKUPDIR/weekly/week.$W.$DATE.sql$SUFFIX"