From e9f20302c51caf3ea29e6db3b44d9f876068aae5 Mon Sep 17 00:00:00 2001 From: alfiosalanitri Date: Sat, 12 Nov 2022 16:08:00 +0100 Subject: [PATCH] fix #1: delete old backup files older then x days number setted into config file --- .config.example | 1 + backup-mysql | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.config.example b/.config.example index aed7682..8a3fe20 100644 --- a/.config.example +++ b/.config.example @@ -1,3 +1,4 @@ DATABASE_USER=your-user DATABASE_PASSWORD=your-password +DELETE_BACKUPS_OLDER_THAN_DAYS=30 EXCLUDED_DATABASES=Database|information_schema|performance_schema|mysql diff --git a/backup-mysql b/backup-mysql index 03a034f..459ee8f 100755 --- a/backup-mysql +++ b/backup-mysql @@ -50,7 +50,9 @@ BACKUP_TMP_DIR="/tmp/backup-mysql" MYSQL_USER=$(awk -F'=' '/^DATABASE_USER=/ { print $2}' $1) MYSQL_PASSWORD=$(awk -F'=' '/^DATABASE_PASSWORD=/ { print $2}' $1) EXCLUDED_DATABASES=$(awk -F'=' '/^EXCLUDED_DATABASES=/ { print $2}' $1) +DELETION_DAYS_NUMBER=$(awk -F'=' '/^DELETE_BACKUPS_OLDER_THAN_DAYS=/ { print $2}' $1) BACKUP_DESTINATION=${2%/} +BACKUP_FILENAME_PREFIX="mysqldump-databases" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump if [ "" == "$MYSQL_USER" ]; then @@ -88,11 +90,17 @@ for DB in $DATABASES; do done printf "\n[${YELLOW}${ICON_WAIT}${NOCOLOR}] Compressing directory...\n" -tar cJfP $BACKUP_DESTINATION/mysqldump-databases-$TIMESTAMP.tar.xz $BACKUP_TMP_DIR +tar cJfP $BACKUP_DESTINATION/$BACKUP_FILENAME_PREFIX-$TIMESTAMP.tar.xz $BACKUP_TMP_DIR printf "[${GREEN}${ICON_OK}${NOCOLOR}] Archive stored into $BACKUP_DESTINATION directory.\n" rm -r $BACKUP_TMP_DIR printf "[${GREEN}${ICON_OK}${NOCOLOR}] Temporary directory deleted.\n\n" +#delete files older then days number +if [ $DELETION_DAYS_NUMBER -gt 0 ]; then + printf "[${YELLOW}${ICON_WAIT}${NOCOLOR}] Deleting backup files older then $DELETION_DAYS_NUMBER day/s...\n" + find $BACKUP_DESTINATION -mtime +$DELETION_DAYS_NUMBER -type f -name "$BACKUP_FILENAME_PREFIX*" -delete + printf "[${GREEN}${ICON_OK}${NOCOLOR}] Old backup files deleted with success.\n\n" +fi END_TIME=$(date +%s) ELAPSED=$(( end_time - start_time )) printf "Backup date: $(date)\n"