#!/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"