diff --git a/db-container-backup/db-container-backup.sh b/db-container-backup/db-container-backup.sh index 9e4b004..d54b8dd 100644 --- a/db-container-backup/db-container-backup.sh +++ b/db-container-backup/db-container-backup.sh @@ -24,9 +24,21 @@ for i in $CONTAINER; do MYSQL_DATABASE=$(docker exec $i env | grep MYSQL_DATABASE |cut -d"=" -f2-) MYSQL_PWD=$(docker exec $i env | grep MYSQL_ROOT_PASSWORD |cut -d"=" -f2-) - docker exec -e MYSQL_DATABASE=$MYSQL_DATABASE -e MYSQL_PWD=$MYSQL_PWD \ - $i /usr/bin/mysqldump -u root $MYSQL_DATABASE \ - | gzip > $BACKUPDIR/$i-$MYSQL_DATABASE-$(date +"%Y%m%d%H%M").sql.gz +for i in $CONTAINER; do + MYSQL_DATABASE=$(docker exec $i env | grep MYSQL_DATABASE |cut -d"=" -f2-) + MYSQL_PWD=$(docker exec $i env | grep MYSQL_ROOT_PASSWORD |cut -d"=" -f2-) + + docker exec mysql echo "show databases" | MYSQL_PWD=$MYSQL_PWD mysql -u root -h 127.0.0.1 --port=3306 | while read dbname; \ + do if [ $dbname != "Database" ] && [ $dbname != "information_schema" ] && [ $dbname != "performance_schema" ] && [ $dbname != "sys" ] && [ $dbname != "mysql" ]; then + docker exec -e MYSQL_DATABASE=$dbname -e MYSQL_PWD=$MYSQL_PWD $i $CONTAINER /usr/bin/mysqldump -u root -h 127.0.0.1 $dbname | gzip > $BACKUPDIR/$CONTAINER-$dbname-$(date +"%Y%m%d%H%M").sql.gz + fi ; done + + OLD_BACKUPS=$(ls -1 $BACKUPDIR/$i*.gz |wc -l) + if [ $OLD_BACKUPS -gt $DAYS ]; then + find $BACKUPDIR -name "$i*.gz" -daystart -mtime +$DAYS -delete + fi +done + OLD_BACKUPS=$(ls -1 $BACKUPDIR/$i*.gz |wc -l) if [ $OLD_BACKUPS -gt $DAYS ]; then