Linux MySQL备份脚本

#!/bin/bash
export LANG=en_US.UTF-8

#mysql安装目录
mysqlHome=/usr/local/mysql

backupDir=/home/mysql/backup/data
logFile=/home/mysql/backup/backup.log

#数据库账号密码
dbUsername=root
dbPassword=123456

#需要备份的库
backupDBs=(dbname1 dbname2 dbname3)
#备份保留次数
backupMaxHistory=10

cd $backupDir

for backupDB in ${backupDBs[@]}; do
    dumpFile=$backupDB.$(date +%Y%m%d%H%M%S).sql
    dumpGzFile=$dumpFile.tgz

    nowTime=$(date +"%Y-%m-%d %H:%M:%S")
    echo $nowTime - $dumpGzFile backup start >>$logFile

    $mysqlHome/bin/mysqldump -u$dbUsername -p$dbPassword $backupDB >$dumpFile
    tar -czvf $dumpGzFile $dumpFile
    rm -f $dumpFile

    count=$(ls -l $backupDB.*.tgz | wc -l)
    if [ $count -gt $backupMaxHistory ]; then
        file=$(ls -l $backupDB.*.tgz | awk '{print $9}' | awk 'NR==1')
        rm -f $file
    fi

    nowTime=$(date +"%Y-%m-%d %H:%M:%S")
    echo $nowTime - $dumpGzFile backup end >>$logFile
done

你可能感兴趣的:(Linux MySQL备份脚本)