关注上方 浩道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 /data
fi
if [ ! -d "/data/mysql_backup" ];then
mkdir /data/mysql_backup
fi
#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_dir
echo"by authors 浩道Linux "
echo"正进入备份路径,准备备份"
echo"开始使用mysqldump备份中,请等待"
/data/haodao/mysql57/bin/mysqldump $MY_conn --databases $db_name > ${db_name}_all_datas_$time.sql
echo"备份完成,准备压缩,压缩完后会删除源文件"
#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 /data
fi
if [ ! -d "/data/mysql_backup" ];then
mkdir /data/mysql_backup
fi
#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_dir
echo"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,让我们一起去学习,一起去进步,一起去涨薪!期待您的加入~~~ 关注回复「资料」可 免费获取学习资料 (含有电子书籍、视频等)。
喜欢的话,记得 点「赞」 和 「在看」 哦