当前位置: 欣欣网 > 码农

分享一下自己在用的数据库备份shell脚本~

2024-06-11码农

关注上方 浩道Linux ,回复 资料 ,即可获取海量 L inux Python 网络通信、网络安全 等学习资料!

前言

大家好,这里是 浩道Linux ,主要给大家分享 L inux P ython 网络通信、网络安全等 相关的IT知识平台。

今天浩道跟大家分享一下我自己在用的数据库备份相关的shell脚本,个人觉得简单易用,大家也可以针对自己生产环境适当修改即可用上!

一、数据库服务器上创建相关备份脚本

我这里在/data_back目录下创建三个脚本,分别是备份数据库全量的脚本、备份数据库基础数据的脚本、清理过期备份数据的脚本。

haodao_mysqlbackup_all_datas.sh

haodao_mysqlbackup_basic_data.sh

haodao_clean_mysqlbackup.sh

对整个 /data_back 目录授予执行权限,执行以下命令即可。

chmod755 -R /data_back/

如下图所示:

(一)编写 haodao_mysqlbackup_all_datas.sh脚本

haodao_mysqlbackup_all_datas.sh 脚本对应内容 如下所示

#备份全量脚本 #by authors 浩道Linux #---请根据数据库实际参数,修改以下参数 ------- MY_user="root"MY_pass="123456"db_name="haodao"#1.判断备份路径是否存在,如不存在则创建路径if [ ! -d "/data" ];then mkdir /datafiif [ ! -d "/data/mysql_backup" ];then mkdir /data/mysql_backupfi#2.自动删除28天前的备份数据(默认每隔1个星期备份一次)clear_path="/data/mysql_backup"find $clear_path -mtime +28 -name "*all_dates*.tar.gz" -exec rm -rf {} \;#3.定义数据库链接,目标库信息 MY_conn="-u $MY_user -p$MY_pass"#4.定义备份目录,工具,时间,文件名 BF_dir="/data/mysql_backup"time="$(date +"%Y%m%d")"#5.先导出为.sql脚本cd$BF_direcho"by authors 浩道Linux "echo"正进入备份路径,准备备份"echo"开始使用mysqldump备份中,请等待"/data/haodao/mysql57/bin/mysqldump $MY_conn --databases $db_name > ${db_name}_all_datas_$time.sqlecho"备份完成,准备压缩,压缩完后会删除源文件"#6.然后再进行压缩(打包后删除源文件)/bin/tar zcf ${db_name}_all_datas_$time.tar.gz ${db_name}_all_datas_$time.sql --remove &> /dev/null

(二)编写 haodao_mysqlbackup_basic_data.sh脚本

haodao_mysqlbackup_basic_data.sh 脚本对应内容 如下所示

#备份基础数据脚本 #by authors 浩道Linux #---请先修改以下参数 ------- MY_user="root"MY_pass="123456"db_name="haodao"#1.判断备份路径是否存在,如不存在则创建路径if [ ! -d "/data" ];then mkdir /datafiif [ ! -d "/data/mysql_backup" ];then mkdir /data/mysql_backupfi#2.自动删除7天前的数据(默认每天备份一次)clear_path="/data/mysql_backup"find $clear_path -mtime +7 -name "*basic_date*.tar.gz" -exec rm -rf {} \;#3.定义数据库链接,目标库信息 MY_conn="-u $MY_user -p$MY_pass"#4.定义备份目录,工具,时间,文件名 BF_dir="/data/mysql_backup"time="$(date +"%Y%m%d")"#5.先导出为.sql脚本cd$BF_direcho"by authors 浩道Linux "echo"正进入备份路径,准备备份"echo"开始使用mysqldump备份中,请等待"/data/haodao/mysql57/bin/mysqldump $MY_conn$db_name haodao_linux haodao_Python haodao_Java > ${db_name}_basic_data_$time.sql echo"备份完成,准备压缩,压缩完后会删除源文件"#6.然后再进行压缩(打包后删除源文件)/bin/tar zcf ${db_name}_basic_data_$time.tar.gz ${db_name}_basic_data_$time.sql --remove &> /dev/null #备份基础库表如下:#浩道Linux业务表#haodao_linux linux表 #haodao_Python Python表#haodao_Java Java表

(三)编写 haodao_clean_mysqlbackup.sh脚本

haodao_clean_mysqlbackup.sh 脚本对应内容 如下所示

#清理过期备份数据的脚本 #by authors 浩道Linux clear_path="/data/mysql_backup"find $clear_path -mtime +7 -name "*basic_date*.tar.gz" -exec rm -rf {} \;find $clear_path -mtime +28 -name "*all_dates*.tar.gz" -exec rm -rf {} \;

二、编写定时任务

制定定时任务, 定时执行脚本,全量备份默认一周一次,基础备份默认一天一次,清理过期备份数据每天一次。

执行命令:crontab -e

输入之后,按i进入编辑模式

#这里的意思是每个星期天0:30 执行备份数据库全量的脚本,----这里要输入你放置脚本的路径300 * * 0 /data_back/haodao_mysqlbackup_all_dates.sh#这里的意思是每天02:30 执行备份数据库基础数据的脚本,----这里要输入你放置脚本的路径302 * * * /data_back/haodao_mysqlbackup_basic_date.sh#这里的意思是每天4:00 执行清理过期备份数据的脚本,----这里要输入你放置脚本的路径04 * * * /data_back/haodao_clean_mysqlbackup.sh

三、总结

以上就是本期分享的数据库备份相关脚本,目前各种AI工具也很方便大家生成各种高效实用的shell脚本,大家不妨去尝试下。

更多精彩

关注公众号 浩道Linux

浩道Linux ,专注于 Linux系统 的相关知识、 网络通信 网络安全 Python相关 知识以及涵盖IT行业相关技能的学习, 理论与实战结合,真正让你在学习工作中真正去用到所学。同时也会分享一些面试经验,助你找到高薪offer,让我们一起去学习,一起去进步,一起去涨薪!期待您的加入~~~ 关注回复「资料」可 免费获取学习资料 (含有电子书籍、视频等)。

喜欢的话,记得 点「赞」 「在看」