mysql 定期备份以及定期删除老旧备份
2019-05-13 本文已影响17人
Hellooooooworld
站在巨人的肩膀上
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
分别在每天的凌晨三点和四点进行备份操作和删除过期操作。