mysql定时备份并删除


崧峻
原创
发布时间: 2025-06-11 16:28:37 | 阅读数 0收藏数 0评论数 0
封面
对于一个公司、一个系统来说,数据就是一切,如果数据没了,哪所有的努力以及成果都灰飞烟灭,由于人工备份太过繁琐,也难免疏漏,所以让服务器定期自动备份方为上策,本期就来教学大家如何编写一个自动备份的shell脚本
1

查看磁盘空间

备份尽量选择空间充足的磁盘输入命令

df-h

查看磁盘剩余空间

2

创建数据备份存储目录

选择一个剩余空间充足的盘符或者位置创建一个文件夹,用于存放mysql的备份文件

3

shell常用操作

命令模式: 可以使用快捷键 (默认模式)

hjkl 进行光标移动

yy 复制

dd 删除

p 粘贴(复制或者删除的内容)

u 撤销

gg 跳转到文件首

G 跳转到文件尾

输入模式: 正常文本录入

i 表示在当前位置输入

a 表示光标后一位输入

o 表示重新启动一行输入

末行模式: 保存或者退出文档,以及配置环境

/word 搜索关键字自顶向下 n向下跳转 N向上跳转(可以循环的)

?word 字底向上

:开头

w 保存

q 退出

wq 保存退出

q!强制退出

set nu 显示行号

set nonu 不显示行号

4

创建shell脚本

进入到你刚刚创建好的磁盘位置 ,然后创建一个shell脚本(有vim的用vim创建没有的用vi创建)命令入下

cd backup
vim backup.sh
5

编写shell脚本



shell脚本如下,案例如图所示这个是保存30天的,如果要更改存储时常吧+30换成+365之类的就可以

#!/bin/bash
#DATE:*/*/*
#USER:***

#设置本机数据库登录信息
mysql_user="数据库用户名"
mysql_password="密码"
mysql_host="数据库地址"
mysql_port="3306"
mysql_charset="utf8mb4"
date_time=`date +%Y-%m-%d-%H-%M`


#备份数据库sql文件并指定目录
mysqldump --databases 数据库名 --single-transaction --flush-logs --master-data=2 -h$mysql_host -u$mysql_user -p$mysql_password --set-gtid-purged=OFF > /opt/project/mysqlBackUp/$(date +%Y%m%d_%H:%M).sql

find /存放的地址/backup -name "*" -type f -mtime +30 -exec rm -f {} \;


6

创建定时任务

给编写好的shell脚本添加可执行权限如图1所示,命令为

chmod +x backup.sh   

然后创建定时任务

crontab -e

输入以下代码,这个是每天0点进行执行shell脚本,如果有日志的话追加到后面那个文件上(例子看图2)

0 0 * * * /文件地址/backup.sh >> /日志文件存放地址/backup/log.txt

Crontab 格式

分 时 日 月 周 执行命令

第 1 列分钟 1~59,每分钟用 或者/1表示,整点分钟数为00或0

第 2 列小时 1~23(0 表示 0 点)

第 3 列日 1~31

第 4 列月 1~12

第 5 列星期 0~6(0 表示星期天)

第 6 列要运行的命令

0 3 * * * /backup.sh,此命令表示在每天的凌晨三点执行一次脚本,可自行调整时间

这样定期数据备份就完成了



7

重启crond

systemctl restart crond.service
阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载