mysql定时备份、打包、传输

1、编写定时备份、压缩、删除 脚本,传送门 backup.sh

bash 复制代码
#!/bin/bash

# 备份工具
tool=mysqldump
# 用户名
username=root
# 密码,特殊字符要转化
password=123456
# 要备份的数据库
database_name1=db_goods
database_name2=db_order


# 是否开启压缩,开启后,备份文件格式为.tar.gz,ON为开启 OFF为关闭
is_tar=ON

# 保存备份的天数,超过31天删除之前的
number=31
# 是否删除超过31天的备份,ON为开启 OFF为关闭
is_delete=ON
# 备份日期
backup_date=`date +%Y-%m-%d`
# 备份保存路径,末尾请不要带"/"
backup_dir=/data/mysql-backup

# 如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then
	mkdir -p $backup_dir;
fi

# 备份
$tool -u$username -p$password --databases $database_name1 > $backup_dir/$database_name1-$backup_date.sql
$tool -u$username -p$password --databases $database_name2 > $backup_dir/$database_name2-$backup_date.sql

# 写创建备份日志
echo "$backup_date 新建备份" >>$backup_dir/log.txt


# 如果开启了压缩,则将.sql文件删除
if [ $is_tar == "ON" ];
then
	cd $backup_dir
	# 压缩
	tar -czf $database_name1-$backup_date.sql.tar.gz $database_name1-$backup_date.sql
	tar -czf $database_name2-$backup_date.sql.tar.gz $database_name2-$backup_date.sql
	# 删除备份.sql文件(非压缩)
    rm -rf $database_name1-$backup_date.sql
    rm -rf $database_name2-$backup_date.sql
fi


# 如果开启了删除过期备份,则进行删除操作
if [ $is_delete == "ON" ];
then
	# 找出需要删除的备份
	find $backup_dir -name "*.sql.tar.gz" -type f -mtime +$number | xargs rm -rf
	 # 写删除文件日志
	 echo "删除 $number 天前的备份" >>$backup_dir/log.txt
fi

2、授权脚本可执行权限

bash 复制代码
chmod +x mysql-backup.sh

3、 用 crontab -e 命令添加一个定时任务

bash 复制代码
# 列出当前用户的所有定时任务
crontab -l

# 编辑当前用户的定时任务
crontab -e

# 设置每分钟执行一侧备份脚本,测试是否成功
* * * * * /data/mysql-backup/mysql-backup.sh

4、正常的备份数据如下

5、测试无误后,修改 crontab -e 自己想要的备份计划,即可,如下:每日23点整执行。

bash 复制代码
# 每日23点整执行
0 23 * * * /data/mysql-backup/mysql-backup.sh

6、每月"第一天"将上月"最后一天"的备份文件上传至存档服务器,传输脚本:trans.sh

bash 复制代码
# 每月第一天凌晨1点执行
0 1 1 * * /data/mysql-backup/transport.sh

7、服务器安装sshd服务

bash 复制代码
# 安装服务
yum -y install sshpass

# 指定密码
sshpass -p '123456' ssh user@host

# 给scp指定密码
sshpass -p '123456' scp /data/app/xxx-xxx-com.tar.gz user@host:/root/web/gz/xxx-xxx-com 
相关推荐
夏贰四5 小时前
数据建模工具如何筑牢数据根基?数据建模工具怎样落实标准体系?
数据库·数学建模·数据建模工具
Agent手记5 小时前
电信运营商如何用AI实现携号转网自动处理?基于实在Agent的业务自动化落地与TARS大模型解析方案
运维·人工智能·ai·自动化
程序猿阿伟6 小时前
《一套完整方法论:搞定图形应用的Docker镜像优化》
数据库·docker·容器
二等饼干~za8986686 小时前
geo优化源码开发搭建技术分享
大数据·网络·数据库·人工智能·音视频
数据库小学妹7 小时前
HTAP混合负载架构:如何用一个数据库同时搞定交易和分析
数据库·经验分享·架构·dba
wuxinyan1237 小时前
工业级大模型学习之路029:解决双智能体调用数据库报错问题
数据库·人工智能·python·学习·智能体
志栋智能7 小时前
超越监控:超自动化巡检提供的主动价值
运维·网络·人工智能·自动化
Elastic 中国社区官方博客7 小时前
Elastic 线下 Meetup 将于 2026 年 7 月 26 号下午在深圳举行
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
YL200404267 小时前
【Redis实战篇】秒杀实现方案(以优惠券秒杀为例)
数据库·redis
搜狐技术产品小编20237 小时前
破局与重构:纯端侧 Android 自动化引擎的尝试与未来推演
android·运维·重构·自动化