#!/bin/bash
# 
# WordPress Backup script from wwwTheCodeCave.com
# 
# This is the incomplete testing version.  The final version will be better. 
#
# Go find it from http://www.TheCodeCave.com
#
# Brian Layman
# Jan 11 2007
#
RANDOM=$$$(date +%N)
Dumpfile="SQLDump$RANDOM.gz"
echo "DFName: $Dumpfile"
DB_NAME=$(sed -n "/define('DB_NAME', '/s/.*, '\([^']*\).*/\1/p" wp-config.php)
DB_USER=$(sed -n "/define('DB_USER', '/s/.*, '\([^']*\).*/\1/p" wp-config.php)
DB_PASSWORD=$(sed -n "/define('DB_PASSWORD', '/s/.*, '\([^']*\).*/\1/p" wp-config.php)
DB_HOST=$(sed -n "/define('DB_HOST', '/s/.*, '\([^']*\).*/\1/p" wp-config.php)
TABLE_PREFIX=$(sed -n "/\$table_prefix  = '/s/.*= '\([^']*\).*/\1/p" wp-config.php)
   
echo "Gathering information:"
echo "DB_NAME: $DB_NAME"
echo "DB_PASSWORD: $DB_PASSWORD"
echo "DB_USER: $DB_USER"
echo "DB_HOST: $DB_HOST"
echo "TABLE_PREFIX: $TABLE_PREFIX"
mysql $DB_NAME --port=3306 --protocol=TCP --host=$DB_HOST  --user=$DB_USER --password=$DB_PASSWORD -e"show tables like '$TABLE_PREFIX%'">TableNamesForSQLDump.txt
WPTables=$(sed -e "/^\($TABLE_PREFIX[^ ]*\).*/!d;s//\1/" -e :b -e "N;s/\n/ /;bb" TableNamesForSQLDump.txt)
echo "WPTables: $WPTables"
echo 
echo "Performing backup"
(mysqldump --opt --port=3306 --protocol=TCP --host=$DB_HOST  --user=$DB_USER --password=$DB_PASSWORD $DB_NAME $WPTables | gzip > $Dumpfile)||{
  echo "SQL Dump Failed"
  exit 999
}
echo "Backup successful. Please examine file $Dumpfile"

