linux定时备份mysql数据库

本文档详细介绍了如何在Linux环境下编写一个MySQL数据库的定时备份脚本,并使用crontab进行任务调度,确保数据安全。步骤包括设置mysql_config_editor、创建备份目录、编写备份脚本、设置权限、配置crontab定时任务,以及实现保留最近7天的备份策略。
摘要由CSDN通过智能技术生成

开发谁都不敢绝对保证安全,定时备份数据库是非常有必要的,以下linux定时备份mysql数据库参考诸多网上案例,由本人实际操作整合,只为做个笔记分享

1.编写备份数据库脚本

cd /home

运行此处会让你输入要备份的那个数据库的密码
这边的–login-path=local1 对应脚本里面的,相当于变量,之所以这样搞是因为脚本里面写mysql账号密码会不安全

mysql_config_editor set --login-path=local1 --host=localhost --user=root --password

以下操作就是创建文件给权限编写脚本,一个个复制粘贴运行即可

mkdir backup
mkdir oldback
touch backup.sh
chmod u+x backup.sh
vi backup.sh
#下面的 --login-path=local1 相当于变量
export LANG=en_US.UTF-8
#注意:下面这几个变量需修改为你自己的
BackDir=/home/backup
LogFile=/home/backup/bak.log
DataBase=xxxxx#数据库名

if [ ! -d "$BackDir" ];then
mkdir $BackDir
fi

if [ ! -f "$LogFile" ]; then
 touch "$LogFile"
fi

Date=`date +%Y%m%d_%H%M%S`
Begin=`date +%Y%m%d_%H:%M:%S`
#到备份目录下
cd $BackDir
#设置导出脚本名称
DumpFile=my_$Date.sql
#设置压缩包名称
DumpFileZip=juzi_$Date.sql.tgz
#导出数据库数据
mysqldump --login-path=local1 $DataBase > $DumpFile
#压缩sql脚本
tar -czvf $DumpFileZip $DumpFile
#删除sql脚本
rm $DumpFile

#下面这一段是保留最近7天的数据
count=$(ls -l  *.tgz |wc -l)
if [ $count -ge 8 ]
then
file=$(ls -l *.tgz |awk '{print $9}'|awk 'NR==1')
rm -f  $file
fi

Last=`date +"%Y%m%d_%H:%M:%S"`
echo start:$Begin end:$Last $DumpFileZip succ >> $LogFile

保存退出:wq
运行脚本

./backup.sh

2.设置定时运行脚本,这边使用的是crontab,一般linux会有自带

crontab -e

创建定时任务,我这边设置的是2分钟执行一次。各种时间结合自己业务来整,操作方式可百度

*/2 * * * * /home/backup.sh

退出保存
重载任务

/bin/systemctl reload crond.service

重启任务

/bin/systemctl restart crond.service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值