MySQL8.0数据库全库备份脚本

本文介绍了如何编辑MySQL配置文件,编写一个使用shell脚本进行全库备份的流程,包括设置备份保留数量、创建备份目录、执行mysqldump命令,以及通过crontab设置定时任务进行每日8点的自动备份。同时,脚本还包含了日志记录和旧备份的删除功能,以保持备份文件的数量不超过设定值。

 1.先编辑MySQL的配置文件

vi /etc/my.cnf,添加以下登录信息

[client]

host=localhost

user=root

password='数据库root密码'

2.编写脚本

#!/bin/bash
 
 #保存备份个数,最多保留10个文件
 number=10
 #备份保存路径
 backup_dir=/data/mysqlbackup
 #日期
date=`date +%Y-%m-%d-%H-%M-%S`
 
 
 #如果文件夹不存在则创建
 if [ ! -d $backup_dir ];
 then
     mkdir -p $backup_dir;
 fi
 
 #备份数据库
 mysqldump --defaults-extra-file=/etc/my.cnf --all-databases > $backup_dir/MySQL-$date.sql
 
 #写创建备份日志
 echo "create $backup_dir/mysql-$date.dupm" >> $backup_dir/log.txt
 
 #找出需要删除的备份
 delfile=`ls -l -crt  $backup_dir/*.sql | awk '{print $9 }' | head -1`
 
 #判断现在的备份数量是否大于$number
 count=`ls -l -crt  $backup_dir/*.sql | awk '{print $9 }' | wc -l`
 
 if [ $count -gt $number ]
 then
   #删除最早生成的备份,只保留number数量的备份
   rm $delfile
   #写删除文件日志
   echo "delete $delfile" >> $backup_dir/log.txt
 fi

3.添加定时任务

crontab -e

添加下面这行,每晚8点,准时备份

00 20 * * * /bin/bash /mnt/data/backup_mysql.sh   

####脚本命名为backup_mysql.sh,存放在/mnt/data目录下##########

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值