#!/bin/sh
#set -x
export PATH="$PATH:/usr/local/bin"

defaults_file=/etc/mysql/aprildb.cnf
user=root
password=`cat /etc/mysql/aprildb-root`
data_dir=/opt/mysql.aprildb
rsync_dest=rsync://ppcbackup03h.yandex.ru/aprildb/`hostname -s`/tmp
rsync_opts="--sockopts=SO_SNDBUF=20000000,SO_RCVBUF=20000000 --whole-file -av"
status=/var/spool/april/xtrabackup-status

die() {
  echo "$@" >&2
  exit 1
}
log() {
  echo "`date` $@"
}

pwd_opt="--password=$password"
[ -z $password ] && pwd_opt=''

log "Lock database read-only"
mysql -S /run/mysqld.aprildb/mysqld.sock -e 'FLUSH TABLES WITH READ LOCK; SET GLOBAL read_only = ON;' || die "Failed to lock database read-only"

log "Copy backup to remote server"
log "$rsync_opts $data_dir/ $rsync_dest"
rsync $rsync_opts $data_dir/ $rsync_dest 
copy_ok=$?

log "Unlock database"
mysql -S /run/mysqld.aprildb/mysqld.sock -e 'SET GLOBAL read_only = OFF; UNLOCK TABLES;'

[ $copy_ok -ne 0 ] && die "Failed to copy data to local directory"

log "creating .rsnap_prot0 on remote server"
touch /tmp/.rsnap_prot0
rsync $rsync_opts /tmp/.rsnap_prot0 $rsync_dest
rm /tmp/.rsnap_prot0

echo `date +%s` > $status
echo "`date` done"
echo "`date` april database backup successfully finished" | mail -s "april-db backup" april-dev@yandex-team.ru

