#!/bin/bash
id="root"
pwd="1234"
dbs="db1 db2"
backuppath="/home/mysqldatabak"
day=15
[ ! -d $backpath ] &&mkdir -p $backuppath
cd $backuppath
backupname=$(date +%Y-%m-%d)
for db in $dbs;
do
mysqldump -u$id -p$pwd -S /var/lib/mysql/mysql.sock $db >$backupname_$db.sql
if [ "$?" == "0" ]
then
echo $(date +%Y-%m-%d)" $db mysqldump sucess">>mysql.log
else
echo $(date +%Y-%m-%d)" $db mysql dump failed">>mysql.log
exit 0
fi
done
for db in $dbs;
do
tar -czf $db.$backupname.tar.gz $db.sql
done
if [ "$?" == "0" ]
then
echo $(date +%Y-%m-%d)" tar sucess">>mysql.log
else
echo $(date +%Y-%m-%d)" tar failed">>mysql.log
exit 0
fi
rm -f *.sql
delname=mysql_$(date -d "$day day ago" +%Y-%m-%d).tar.gz
rm -f $delname
USERNAME=root
PASSWORD=m111111111111
DATE=`date +%Y%m%d`
DAYS=20
mkdir -p /backup/db-backup/${DATE}
BACKUP_DIR=/backup/db-backup/${DATE}
MYSQL_DIR=/usr/bin
cd ${BACKUP_DIR}
while read databasename
do
if [ -f ${databasename}_${DATE}.sql ]; then
echo MySQL Database ${databasename} ${DATE} backup file already exists.
else
${MYSQL_DIR}/mysqldump -u${USERNAME} -p${PASSWORD} ${databasename} --default-character-set=utf8 --opt -Q -R --skip-lock-tables > ${databasename}_${DATE}.sql
fi
done < /home/databasename.txt
find /backup/db-backup/ -name "20*" -type d -mtime +22|tee -a /home/del.txt|xargs rm -r 2>>/home/err.txt
/usr/bin/scp -r /backup/db-backup/${DATE} root@10.10.1.112:/mybk/db-backup/bak/
exit 0