From aa6e0e9fead7a7922fe47c898601b5f8cfe80354 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Fri, 21 Mar 2014 17:53:22 -0300 Subject: Truncate database name to 16 chars max --- TODO.md | 1 - lib/hydra/backup | 6 ++++++ share/hydractl/backup-restore-database | 4 ++-- share/hydractl/backup-site | 25 +++++++++++++------------ 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/TODO.md b/TODO.md index ea6f5ce..3c887ca 100644 --- a/TODO.md +++ b/TODO.md @@ -21,4 +21,3 @@ Hydractl - backup-restore-site: - metastore integration for fine-grained permissions - use metadata do detect drupal series - - truncate database name to 16 chars max diff --git a/lib/hydra/backup b/lib/hydra/backup index 000bc5a..5d61db3 100644 --- a/lib/hydra/backup +++ b/lib/hydra/backup @@ -168,3 +168,9 @@ function hydra_backup_restore_database { echo "Database should be manually restored" fi } + +# Return a normalized database name +function hydra_database_name { + # MySQL 16 chars limit + echo $1 | sed -r 's/(^>.{16}).*/\1/'" +} diff --git a/share/hydractl/backup-restore-database b/share/hydractl/backup-restore-database index 1912529..ca0a755 100755 --- a/share/hydractl/backup-restore-database +++ b/share/hydractl/backup-restore-database @@ -23,12 +23,12 @@ hydra_config_load # Parameters. DATE="`date +%Y%m%d`" HOST="$1" -DATABASE="$2" +DATABASE="`hydra_database_name $2`" BASEDIR="/tmp" # Check restore strategy. if [ "$1" == "backups" ]; then - DATABASE="$3" + DATABASE="`hydra_database_name $3`" hydra_backup_environment_local_website $2 $3 elif [ "$HOST" == "localhost" ] || [ "$HOST" == "`facter hostname`" ]; then hydra_backup_environment_local diff --git a/share/hydractl/backup-site b/share/hydractl/backup-site index 68b2e4c..437d3e4 100755 --- a/share/hydractl/backup-site +++ b/share/hydractl/backup-site @@ -28,6 +28,7 @@ DATE="`date +%Y%m%d`" DEST_BASE="$SITES/backups/site" DEST_BASE_SITE="$DEST_BASE/$SITE" DEST="$DEST_BASE_SITE/`facter hostname`/$DATE" +DATABASE="`hydra_database_name $SITE`" # Syntax check. if [ -z "$SITE" ]; then @@ -116,18 +117,18 @@ if [ -d "$LOCATION" ]; then fi # Backup database -if [ -d "/var/lib/mysql/$SITE" ]; then - if [ -e "$SITE.sql.bz2" ]; then - echo "File $SITE.sql.bz2 already exists, skipping..." +if [ -d "/var/lib/mysql/$DATABASE" ]; then + if [ -e "$DATABASE" ]; then + echo "File $DATABASE already exists, skipping..." else - echo "Backing up database $SITE..." - mysqldump $SITE > $SITE.sql - bzip2 $SITE.sql - rm -f $SITE.sql - md5sum $SITE.sql.bz2 > $SITE.sql.bz2.md5 - sha1sum $SITE.sql.bz2 > $SITE.sql.bz2.sha1 - chown root.$BACKUPS_GROUP $SITE.sql* - chmod 640 $SITE.sql* - echo "Saved $DEST/$SITE.sql.bz2" + echo "Backing up database $DATABASE..." + mysqldump $DATABASE > $DATABASE.sql + bzip2 $DATABASE.sql + rm -f $DATABASE.sql + md5sum $DATABASE.sql.bz2 > $DATABASE.sql.bz2.md5 + sha1sum $DATABASE.sql.bz2 > $DATABASE.sql.bz2.sha1 + chown root.$BACKUPS_GROUP $DATABASE.sql* + chmod 640 $DATABASE.sql* + echo "Saved $DEST/$DATABASE.sql.bz2" fi fi -- cgit v1.2.3