mysql 定期备份以及定期删除老旧备份

站在巨人的肩膀上

part.0 准备
os: centos7.4
mariadb: 10.2

part.1 mysql 备份脚本

思路:主要是先查询所有的数据库,然后逐个进行备份,最后统一打包。

#!/bin/bash

USER="root"
PASSWORD="********"
#OUTPUT="/root"
OUTPUT="/root/mysqlbackup"

databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

for db in $databases; do
    if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
        echo "Dumping database: $db"
        mysqldump -u $USER -p$PASSWORD --databases $db > $OUTPUT/`date +%Y%m%d`.$db.sql
        #gzip $OUTPUT/`date +%Y%m%d`.$db.sql
    fi
done

tar -zcvf $OUTPUT/`date +%Y%m%d`_mysqlbackup.tar.gz $OUTPUT/*.sql
rm -f $OUTPUT/*.sql

part.2 删除备份脚本

思路:查找是否有修改日期超过15天的备份文件。然后进行删除。

#!/bin/bash

OUTPUT="/root/mysqlbackup"
find $OUTPUT -name "*mysqlbackup.tar.gz" -type -f -mtime +15 -exec rm -rf {} \; > /dev/null 2>&1
~

part.3 建立定时任务

# crontab -e
00 03 * * * /usr/local/src/dump.sh
00 04 * * * /usr/local/src/deletedump.sh

分别在每天的凌晨三点和四点进行备份操作和删除过期操作。

你可能感兴趣的:(mysql 定期备份以及定期删除老旧备份)