Mydumper多线程备份脚本

#!/bin/bash
dd=$(date +%Y%m%d)
user='root' --备份用户
password='Admin@123'  --备份密码
backup_dir=/data/backup/${dd}  --备份目录
mkdir -p ${backup_dir}
ignore_dbs="sys performance_schema information_schema"
databases=$(/usr/local/mysql/bin/mysql -uroot -p"${password}" -Nse 'show databases' 2>/dev/null | grep -Ev "$(echo $ignore_dbs | sed 's/ /|/g')")
max_jobs=5
backup_database() {
    local dbname=$1
    mydumper -u "${user}" -p "${password}" -S /tmp/mysql.sock -R -E -G -c -B "$dbname" -o "${backup_dir}/${dbname}"
    echo "backup database $dbname Successful!"
}
job_count=0
for dbname in $databases; do
    backup_database "$dbname" &
    job_count=$((job_count + 1))
    if [ "$job_count" -ge "$max_jobs" ]; then
        wait
        job_count=0
    fi
done
wait

--删除15天前的备份
find /data/backup -maxdepth 1 -mtime +15 -type d -exec rm -Rf {} \;
posted @ 2025-01-14 14:53  小满人生  阅读(20)  评论(0)    收藏  举报