@toc
Linux 定制自动备份至 本地及当地window目录下 (docker )
以下是在Linux(CentOS)上实现MySQL定时备份并将备份传输到Windows本地的方案详解,同时以Markdown表格的形式列出名称、介绍以及优缺点。
名称 | 介绍 | 优缺点 |
---|---|---|
使用Shell脚本和Cron | 使用Shell脚本和Cron定时任务来备份MySQL数据,并使用文件传输协议(如SCP或SFTP)将备份文件传输到Windows本地。 | 优点:简单易用,无需额外工具;可通过Cron实现定时备份;支持备份文件传输到远程服务器。缺点:备份文件传输速度受网络影响;需要配置正确的文件传输协议和权限。 |
使用第三方备份工具 | 使用第三方备份工具(如Percona XtraBackup、mysqldump等)来备份MySQL数据,并将备份文件传输到Windows本地。可以结合Shell脚本和Cron来实现定时备份和传输。 | 优点:提供更多备份选项和功能;备份效率高;支持备份文件的远程传输。缺点:需要额外学习和配置第三方备份工具;备份文件传输速度受网络影响。 |
使用数据复制方案 | 配置MySQL的主从复制,将数据复制到另一台Linux服务器上,然后使用文件传输协议将备份文件传输到Windows本地。 | 优点:实时备份,数据可靠性高;可在从服务器上进行备份文件的传输;支持主从复制的其他优点。缺点:配置复杂;需要额外的硬件和网络资源。 |
使用云存储服务 | 将MySQL备份文件上传到云存储服务(如Amazon S3、Google Cloud Storage等),然后从Windows本地下载备份文件。 | 优点:备份文件安全可靠;无需自行配置文件传输;支持跨平台备份文件的访问。缺点:需要注册和配置云存储服务;备份文件传输速度受网络影响;可能需要支付额外的存储和传输费用。 |
使用Shell脚本和Cron
- 编写备份脚本:创建一个Shell脚本文件,例如backup.sh,用于执行MySQL数据备份操作。在脚本中,需要包含连接MySQL数据库的相关信息、备份文件的保存路径以及备份命令。
- 编辑备份脚本:在备份脚本中,使用适当的命令(如mysqldump)来执行MySQL数据备份。确保备份命令包括必要的选项,如备份的数据库名称、用户名、密码等。
- 设置备份文件路径:在备份脚本中,指定备份文件的保存路径。可以选择本地路径或远程路径,例如/var/backups/mysql/。
- 设置定时任务:使用Cron定时任务来自动执行备份脚本。打开终端,运行
crontab -e
命令编辑Cron表。 - 编辑Cron表:在Cron表中,添加一行指定备份脚本的执行时间和路径。例如,
0 2 * * * /path/to/backup.sh
表示每天凌晨2点执行备份脚本。 - 保存和退出:保存Cron表的修改,并退出编辑器。
- 测试备份脚本:运行备份脚本进行测试,确保备份正常工作。在终端中执行
bash /path/to/backup.sh
命令,检查备份文件是否生成。 - 自动定时备份:Cron将按照设置的时间自动执行备份脚本,并生成MySQL数据备份文件。
添加定时删除文件
备份编写如下:
#!/bin/bash
docker exec -it f73d6e43f9cc bash -c "mysqldump -u root -pBigData@2021 --single-transaction BigData > /backup/BigData.sql"
docker cp f73d6e43f9cc:/backup/BigData.sql "/home/Backup/Bigdata_Backup/$(date '+%Y-%m-%d')-BigData.sql"
ls -lt ./*.sql | tail -n 1 | awk '{print $9}' | xargs rm
chmod 777 /home/Backup/Bigdata_Backup/$(date '+%Y-%m-%d')-BigData.sql ## 用户下载到本地
windows 自动下载
使用scp命令编写bat文件
@echo off
echo 正在下载文件...
scp -P 10086 -r root@10.10.61.7:/home/Backup/Bigdata_Backup/*.sql D:/project/易班/易班项目/数学与大叔据学院易班学工系统/数据备份/
echo 下载完成。
🤞到这里,如果还有什么疑问🤞
🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳