Last edited time
May 11, 2025 04:33 AM
password
AI summary
type
status
date
slug
summary
tags
category
icon
前言:
一个自动远程备份本地MySQL数据库的脚本。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。
📝 自动远程备份本地MySQL数据库
脚本
以下是一个可以自动远程备份本地MySQL数据库的脚本。这个脚本使用mysqldump来备份数据库,并通过scp命令将备份文件上传到远程服务器。实现目的,自动备份数据库到另一台服务器,自动删除过期备份,自动重试,错误记录等等。
当然,这个脚本稍稍修改一下,也可以备份其他,比如
/var/www/website
网站文件, /etc/nginx
nginx配置文件等等。脚本如下:
vi /path/to/your/backup_script.sh
脚本结构说明:
- 配置部分:
- MySQL数据库凭证:你可以设置数据库的用户名、密码以及数据库名(或者选择备份所有数据库)。
- 本地备份目录:定义了临时存储备份文件的本地目录。
- 远程服务器信息:定义了备份文件传输到的远程服务器和目录,并且提供了SSH端口和用户名。
- 保留策略:你可以设置本地和远程备份文件的保留天数,超出天数的备份文件会被删除。
- 脚本执行流程:
- 创建本地备份目录:确保备份目录存在。
- 备份MySQL数据库:使用
mysqldump
命令备份指定的数据库(如果需要备份所有数据库,可以修改为-all-databases
)。 - 压缩备份文件:将备份文件进行压缩(使用
tar.gz
格式),然后删除未压缩的备份文件。 - 上传到远程服务器:通过
scp
命令将压缩后的备份文件上传到远程服务器。 - 删除本地过期备份:通过
find
命令删除本地超过指定天数的备份文件。 - 删除远程过期备份:通过
ssh
连接远程服务器并执行删除远程过期备份的命令。
- 日志记录:
- 使用
tee
命令将日志同时输出到控制台和日志文件(/var/log/mysql-remote-backup.log
)。每个操作的开始、结束及错误信息都会被记录。
设置定时任务:
你可以通过
crontab -e
添加定时任务,让备份脚本每天自动执行:这样,脚本会每天凌晨3点执行一次,自动备份并清理过期文件。
🤗 总结归纳
最后,提醒一下,如果两台服务器都用ssh key登陆的话,可以省去很多不必要的步骤。
📎 参考文章
有关mysql安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
- Author:迷途
- URL:http://blog.ortech.nyc.mn/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/backup
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts