Package: automysqlbackup Version: 2.6+debian.4-4 Severity: normal Tags: patch
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"