]> gitweb.fluxo.info Git - hydra.git/commitdiff
Action backup-site now dumping db and storing things in the right place
authorSilvio Rhatto <rhatto@riseup.net>
Tue, 27 Sep 2011 21:07:24 +0000 (18:07 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Tue, 27 Sep 2011 21:07:24 +0000 (18:07 -0300)
lib/hydra/misc
share/hydractl/backup-restore-site
share/hydractl/backup-site
share/hydractl/puppet-reset-stored

index 90dd4b85e18265268b4eee77c42a47fe6b53aff8..9bcc9df91cb11e84c4b46710aa19cd1a1fffdae6 100644 (file)
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-# Set needed environment variables and do basic checks.
+# Set needed environment variables and do basic checks
 function hydra_set_env {
   export CONFIG="$HOME/.hydra/config"
   export ACTION="$1"
@@ -26,7 +26,7 @@ function hydra_user_input {
   fi
 }
 
-# Install a package.
+# Install a package
 function hydra_install_package {
   if [ -z "$1" ]; then
     return
@@ -38,3 +38,10 @@ function hydra_install_package {
     DEBIAN_FRONTEND=noninteractive apt-get install $1 -y
   fi
 }
+
+# Truncate a database
+function hydra_truncate_database {
+  if [ ! -z "$1" ]; then
+    mysql puppet -e "drop database $1; create database $1;"
+  fi
+}
index 16ebf932b2911b2526ec9a7aeab5c199f56759a2..d02fb7944d249e77190842d3752467ec6a475019 100755 (executable)
@@ -60,7 +60,6 @@ fi
 # Site
 if [ -e "$FOLDER/site" ]; then
   chown -R $SITE.$SITE $FOLDER/site
-  echo "Databases should be manually restored"
 fi
 
 # Drupal
@@ -71,3 +70,10 @@ if [ -e "$FOLDER/drupal" ]; then
   chown root.$SITE $FOLDER/drupal/settings.php
   chmod 640 $FOLDER/drupal/settings.php
 fi
+
+# Restore database
+if [ -f "$RESTOREDIR/var/backups/mysql/sqldump/$SITE.sql.gz" ]; then
+  hydra_truncate_database $SITE
+else
+  echo "Databases should be manually restored"
+fi
index 53119da864cf2165c38b8ff7823e68a218a3985e..79bc4ec0591d4e7611b555d4d57d8f0954821e9e 100755 (executable)
@@ -2,31 +2,62 @@
 #
 # Pack a website.
 #
-# TODO: put on $SITES/backups/site/$SITE, with htaccess and correct
-#       ownership/permission.
-#
-# TODO: optionally backup database before packing
-#
-# TODO: add backup files in a dated folder
 
 # Arguments
 SITES="/var/sites"
 SITE="$1"
 PACK="$1.tar.bz2"
+DATE="`date +%Y%m%d`"
+DEST="$SITES/backups/site/$SITE/$DATE"
 
+# Syntax check
 if [ -z "$SITE" ]; then
   hydra_action_usage
   exit 1
-elif [ ! -d "$SITES/$SITE" ]; then
-  echo "No such site $SITE"
-  exit 1
 fi
 
-mkdir -p $SITES/backups/$SITE
-cd $SITES/backups/$SITE
+# Create folder
+mkdir -p $DEST
+cd $DEST
 
-tar jcvf $PACK $SITES/$SITE
-md5sum $PACK  > $PACK.md5
-sha1sum $PACK > $PACK.sha1
+# Password setup
+if [ ! -e "$SITES/backups/site/$SITE/.htpasswd" ]; then
+  touch $SITES/backups/site/$SITE/.htpasswd
+  chmod 640 $SITES/backups/site/$SITE/.htpasswd
+  chown root.backups $SITES/backups/site/$SITE/.htpasswd
+fi
 
-echo "Saved $SITES/backups/$SITE/$PACK"
+# Access setup
+if [ ! -e "$SITES/backups/site/$SITE/.htaccess" ]; then
+  echo > $SITES/backups/site/$SITE/.htaccess <<EOF
+AuthType Basic
+AuthName "Backup $SITE"
+AuthUserFile $SITES/backups/site/$SITE/.htpasswd
+Require valid-user
+EOF
+fi
+
+# Backup site
+if [ ! -d "$SITES/$SITE" ]; then
+  echo "Backing up site folder..."
+  tar jcvf $PACK $SITES/$SITE
+  md5sum $PACK  > $PACK.md5
+  sha1sum $PACK > $PACK.sha1
+  chown root.backups $PACK*
+  chmod 640 $PACK*
+  echo "Saved $DEST/$PACK"
+fi
+
+# Backup database
+if [ -d "/var/lib/mysql/$SITE" ]; then
+  echo "Backing up database $SITE..."
+  mysqldump $SITE > $SITE.sql
+  bzip2 $SITE.sql
+  md5sum $SITE.sql.bz2 > $SITE.sql.bz2.md5
+  sh1sum $SITE.sql.bz2 > $SITE.sql.bz2.sha1
+  chown root.backups $SITE.sql*
+  chmod 640 $SITE.sql*
+  echo "Saved $DEST/$SITE.sql.bz2"
+else
+  echo "Database not found, please backup it manually"
+fi
index 48a3dc1012a26c120bb664192e0fad455912c54b..090917ff48b8cef7980a27b27d58be159718389b 100755 (executable)
@@ -3,4 +3,8 @@
 # Reset puppet stored configs
 #
 
-mysql puppet -e "drop database puppet ; create database puppet;"
+# Load.
+source $APP_BASE/lib/hydra/functions || exit 1
+hydra_config_load
+
+hydra_truncate_database puppet