133 lines
2.4 KiB
Bash
Executable File
133 lines
2.4 KiB
Bash
Executable File
#!/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 ""
|