Skip to main content

MySQL 数据库 Shell 备份脚本

  1. MySQL 数据库 Shell 备份脚本

    https://www.v2ex.com/t/1002709
    玩具就要用玩具的方案(手动斜眼):
    
    30 2 * * * /data/backup/database/mysql_backup.sh
    

    #RePost #Script #DevOps #DB
    
    #mysql 备份 XXX 数据库脚本
    #保留最近 10 天备份
    #备份目录
    backupDir=/data/backup/database
    #mysqlDump
    mysqldump=mysqldump
    #ip
    host=***
    #用户名
    username=***
    #密码
    password=***
    #今天日期
    today=`date +%Y%m%d`
    #十天前的日期
    timeTenDayAgo=`date -d -10day +%Y%m%d`
    #备份的数据库
    database=***
    
    #如果文件夹不存在则创建
    if [ ! -d $backupDir ];
    then
    mkdir -p $backupDir;
    fi
    
    echo '开始备份'$database
    docker exec mysql $mysqldump -h$host -u$username -p$password $database | gzip > $backupDir/$database-$today.sql.gz
    echo '成功备份'$database'到'$backupDir/$database-$today.sql.gz
    if [ ! -f "$backupDir/$database-$timeTenDayAgo.sql.gz" ];
    then
    echo '10 天前备份不存在,无需删除'
    else
    rm -f $backupDir/$database-$timeTenDayAgo.sql.gz
    echo '删除 10 天前备份文件'$backupDir/$database-$timeTenDayAgo.sql.gz
    fi
OKHK