#!/bin/sh
# mysql_backup.sh <kakaopor-at-kakaopor-dot-hu>

# config
BACKUP_DIRECTORY="/backup/mysql"
MYSQL_OPTIONS=""
MYSQLDUMP_OPTIONS="--add-drop-table"
EXIT_ON_ERROR=0
# /config

if [ `whoami` != "root" ]; then
	echo "$0: you have to run this script as root."
	exit 1
fi

DATE=`date +%y%m%d%H%M%S`
HOSTNAME=`cat /etc/hostname`

USERNAME=`cat /etc/mysql/debian.cnf | grep "^user " | head -n 1 | cut -d = -f 2`
PASSWORD=`cat /etc/mysql/debian.cnf | grep "^password " | head -n 1 | cut -d = -f 2`

# trim
USERNAME=`echo $USERNAME`
PASSWORD=`echo $PASSWORD`

DATABASES=`echo "SHOW DATABASES;" | mysql -u $USERNAME --password=$PASSWORD $MYSQL_OPTIONS`

[ ! -d "$BACKUP_DIRECTORY" ] && mkdir -p "$BACKUP_DIRECTORY"

num=0
for db in $DATABASES; do
	num=$((num + 1))
	[ "$num" == "1" ] && continue

	mysqldump $db -u $USERNAME --password=$PASSWORD $MYSQLDUMP_OPTIONS | gzip -c9 > "$BACKUP_DIRECTORY/$DATE.$HOSTNAME.$db.sql.gz"
	
	result=$?
	
	[ $result != 0 ] && [ "$EXIT_ON_ERROR" == "1" ] && exit $result
done

exit 0
