数据库定时导出备份保留30天脚本

#!/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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值