#!/bin/bash # # fullsiterestore.sh v1.0 # # Restore of website file and database content made with full site backup. # # A number of variables defining file location and database connection # information must be set before this script will run. # This script expects a compressed tar file (tgz) made by fullsitebackup.sh. # Website files should be in a tar file named filecontent.tar, and database # content should be in a sqldump sql file named dbcontent.sql. This script # expects the sql to drop the table before readdding the data. In other words, # it does not do any database preparation. # # Parameters: # tar_file_name # # Configuration # # Database connection information dbname={my_wiki} # (e.g.: dbname=drupaldb) dbhost=localhost dbuser={wikiadmin} # (e.g.: dbuser=drupaluser) # Website Files webrootdir={/data0/mediawiki} # (e.g.: webrootdir=/home/user/public_html) # # Variables # # Execution directory (script start point) startdir=`pwd` # Temporary Directory datestamp=`date +'%Y-%m-%d'` tempdir=tmpbckdir$datestamp # # Banner # echo "" echo "fullsiterestore.sh v1.0" # # Input Parameter Check # # If no input parameter is given, echo usage and exit if [ $# -eq 0 ] then echo " Usage: sh fullsiterestore.sh {backupfile.tgz}" echo "" exit fi tarfile=$1 # Check that the file exists if [ ! -f "$tarfile" ] then echo " Can not find file: $tarfile" echo "" exit fi # Check that the webroot directory exists if [ ! -d "$webrootdir" ] then echo " Invalid internal parameter: webrootdir" echo " Directory: $webrootdir does not exist" echo "" exit fi # # Create temporary working directory and expand tar file # echo " .. Setup" mkdir $tempdir cd $tempdir tar xzf $startdir/$tarfile echo " done" # # Remove old website files # echo " .. removing old files from $webrootdir" rm -r $webrootdir/* echo " done" # # unTAR website files # echo " .. unTARing website files into $webrootdir" cd $webrootdir tar xf $startdir/$tempdir/filecontent.tar echo " done" # # Load database information # cd $startdir/$tempdir echo " .. loading database:" echo " user: $dbuser; database: $dbname; host: $dbhost" echo "use $dbname; source dbcontent.sql;" | mysql --password --user=$dbuser --host=$dbhost echo " done" # # Cleanup # echo " .. Clean-up" cd $startdir rm -r $tempdir echo " done" # # Exit banner # echo " .. Full site restore complete" echo ""