#!/bin/bash
USER=your_user
PASSWORD=your_password
DATABASE1=your_database_name
BACKUP_DIR=/data/backup/database/
#备份数据库文件的路径
LOGFILE=/data/backup/database/data_backup.log
#备份数据库脚本的日志文件
DATE=`date +%Y%m%d-%H%M`
#获取当前系统时间
DUMPFILE1=$DATE-your_database_name.sql
#需要备份的数据库名称
ARCHIVE1=$DUMPFILE1-tar.gz
#备份的数据库压缩后的名称
DELETEFILE=`find /data/backup/database/ -type f -mtime +30`
DELETE=`find /data/backup/database/ -type f -mtime +30|wc -l`
#备份目录下有几个超过30天的文件
if [ ! -d $BACKUP_DIR ];
then
mkdir -p "$BACKUP_DIR"
fi
#判断备份路径是否存在,若不存在则创建该路径
echo -e "\n" >> $LOGFILE
echo "------------------------------------" >> $LOGFILE
echo "BACKUP DATE:$DATE">> $LOGFILE
echo "------------DELETED FILE------------" >> $LOGFILE
echo "$DELETEFILE" >> $LOGFILE
echo "------------------------------------" >> $LOGFILE
#输出备份时间和删除的文件名
if [ $DELETE -ne 0 ];
then
find /data/backup/database/ -type f -mtime +30 -exec rm {} \;
fi
#判断备份目录下是否有超过30天的文件,如果有则删除
cd $BACKUP_DIR
#跳到备份路径下
/usr/local/mysql/bin/mysqldump -u$USER -p$PASSWORD $DATABASE1 > $DUMPFILE1
#使用mysqldump备份数据库
if [[ $? == 0 ]]; then
tar czvf $ARCHIVE1 $DUMPFILE1 >> $LOGFILE 2>&1
#判断是否备份成功,若备份成功,则压缩备份数据库,否则将错误日志写入日志文件中去。
echo "$ARCHIVE1 BACKUP SUCCESSFUL!" >> $LOGFILE
rm -f $DUMPFILE1
else
echo “$ARCHIVE1 Backup Fail!” >> $LOGFILE
fi
数据库定时导出备份保留30天脚本
最新推荐文章于 2024-03-07 11:24:40 发布