ansible-roles/mysql/files/mysql-backup.sh

42 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
if [ ! -f /root/.my.cnf ] ; then
exit 1
fi
MY_BACKUP_DIR=/var/lib/mysql-backup
umask 0077
MY_DATA_DIR=/var/lib/mysql
LOCKFILE=$MY_DATA_DIR/.mysqldump.lock
if [ ! -d $MY_BACKUP_DIR ] ; then
mkdir -p $MY_BACKUP_DIR
fi
if [ ! -d $MY_BACKUP_DIR/log ] ; then
mkdir -p $MY_BACKUP_DIR/log
fi
if [ ! -d $MY_BACKUP_DIR/old ] ; then
mkdir -p $MY_BACKUP_DIR/old
fi
chmod -R 700 $MY_BACKUP_DIR
if [ ! -f $LOCKFILE ] ; then
touch $LOCKFILE
for db in $( /bin/ls -1 /var/lib/mysql/ ) ; do
if [ -d /var/lib/mysql/$db ] ; then
if [ -f $MY_BACKUP_DIR/$db.sql ] ; then
mv -f $MY_BACKUP_DIR/$db.sql $MY_BACKUP_DIR/old
fi
#mysqldump -uroot -f --opt -p$MYSQLPASS $db > $MY_BACKUP_DIR/$db.sql 2> $MY_BACKUP_DIR/log/$db.log
mysqldump -f --opt $db > $MY_BACKUP_DIR/$db.sql 2> $MY_BACKUP_DIR/log/$db.log
chmod 600 $MY_BACKUP_DIR/$db.sql
fi
done
# Do a "flush-hosts" after the backup
mysqladmin flush-hosts 2> $MY_BACKUP_DIR/log/flush-hosts.log
rm -f $LOCKFILE
fi
exit 0