mysql 30天循环全盘压缩备份脚本
2017-01-07 23:01:37
#MySQL DataBase Full Backup.
# Use mysqldump --help get more detail.
# insidemysql : mysql
set -x
# define data directy
source /etc/profile
mysqlDir=/usr/bin
# defile user,pwd
dataBackupDir=/var/lib/mysql
eMailFile=$dataBackupDir/email.txt
eMail1=XXXXXXXXX@163.com
# backup file
logFile=$dataBackupDir/mysqlbackup.log
#DATE=`date -l`
echo “开始远程完整备份172.16.10.222 mysql的数据库 …” > $eMailFile
echo " 开始时间:$(date +%Y-%m-%d-%H:%M:%S)" >> $eMailFile
cd $dataBackupDir
# defile filename
GZDumpFile=mysql_$(date +%Y%m%d_%H%M%S).sql.gz
/usr/bin/mysqldump -uroot -p’apexsoft’ -h 172.16.10.222 --default-character-set=utf8 --extended-insert=false --single-transaction --databases kaitai | gzip > $GZDumpFile
if [ $?==0 ]
then
echo “结束时间:$(date +%Y-%m-%d-%H:%M:%S)” >> $eMailFile
echo “数据库备份文件名:$GZDumpFile” >> $eMailFile
echo “数据库备份完成!” >> $eMailFile
else
echo “数据库备份失败!!!” >> $emailFile
# send email
cat $eMailFile | mail -s “MySQL Backup” $eMail1
fi
echo “--------------------------------------------------------” >> $logFile
cat $eMailFile >> $logFile
#-ctime表示创建时间,这里表示删除创建时间为多少天之前的文件,也就是结果只保留多少天的数据
find “/var/lib/mysql” -ctime +30 -type f -name “*.sql.gz” -print > deleted.txt
echo -e “delete files:\n” >> $logFile
#循环删除匹配到的文件
cat deleted.txt | while read LINE
do
rm -rf $LINE
echo $LINE>> $logFile
done
echo “--------------------------------------------------------” >> $logFile
评论(0)