#!/bin/bash
# Creates snapshots of WordPress installs under Plesk
# Brandon Yap (byap@horizonhosting.com.au)
# v1.0

if [ -z "$1" ]; then
echo "Usage: wpsnapshot.sh "
exit
fi

domain=$1
domainid=`mysql -ss -uadmin -p\`cat /etc/psa/.psa.shadow\` psa -e "select * from domains where name='$domain'" | awk '{print $1}'`

if [ "$domainid" == "" ]; then
echo "Invalid domain."
exit
fi

wwwroot=`mysql -ss -uadmin -p\`cat /etc/psa/.psa.shadow\` psa -e "select * from hosting where dom_id=$domainid" | awk '{print $4}'`
wpdir=`find $wwwroot -name wp-config.php | rev | cut --delimiter="/" -f2- | rev`
db=`grep DB_NAME $wpdir/wp-config.php | awk -F"'" '{print $4}'`
TIME="$(date +%Y%m%d-%H%M%S)"

mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` $db > /root/wpsnapshots/${db}dump.sql
tar czf /root/wpsnapshots/${domain}${TIME}.tar.gz $wpdir /root/wpsnapshots/${db}dump.sql
rm /root/wpsnapshots/${db}dump.sql

echo "Complete."

