Linux自动备份MySQL到远程服务器脚本

5星 · 超过95%的资源 需积分: 49 80 下载量 85 浏览量 更新于2024-09-10 3 收藏 3KB TXT 举报
本文主要介绍如何在Linux系统中设置一个自动化脚本来定期备份MySQL数据库,并通过FTP将备份文件上传到远程服务器。这个脚本包括创建备份目录、编写备份脚本、设置权限、配置定时任务以及调整防火墙规则以允许FTP传输。 在Linux环境下,为MySQL数据库创建一个自动备份并将其通过FTP传输到远程服务器的过程主要包括以下几个步骤: 1. **创建备份目录**:首先,你需要确保有一个专门用于存储备份文件的目录。在示例中,使用`mkdir -p /backup/bakdata`命令创建了一个名为`/backup/bakdata`的目录。 2. **编写备份脚本**:创建一个名为`vibakdata.sh`的shell脚本,该脚本包含了备份和清理的逻辑。它获取当前日期(`dateTime=date+%Y_%m_%d`),定义了保留备份天数(`days=7`)、备份所有者(`orowner=bakuser`)、备份描述目录(`bakdescdir=/DATA/bakmdata`)、备份文件名(`bakdata=$orowner"_"$dateTime.tar.gz`)和日志文件名(`baklog=$orowner"_"$dateTime.log`)。然后,它使用`tar`命令打包指定的源目录(`baksrcdir=/DATA/www/moodledata`),并将结果写入日志文件。此外,脚本还删除旧的备份文件和日志文件,以及通过`scp`命令将备份文件传输到远程服务器的指定路径(`remotePath=/DATA/moodle/bakmooldedata`)。 3. **设置执行权限**:为了使脚本能够执行,需要使用`chmod +x /backup/oracledata/ordatabak.sh`命令为其赋予执行权限。 4. **配置定时任务**:利用`crontab -e`命令编辑crontab配置,设置一个定时任务,例如每天凌晨1点执行备份脚本。在示例中,任务被设置为`0 0 * * * /DATA/bakdata/bakdata.sh`,这表示每天的00:00执行`/DATA/bakdata/bakdata.sh`脚本。 5. **调整防火墙规则**:为了允许FTP传输,需要在Linux系统的iptables防火墙规则中开放相应的端口。示例中提到,需要打开FTP的主动模式(端口20)和被动模式(通常为端口1024-1048),这可以通过编辑`/etc/sysconfig/iptables`文件并添加相应的规则来完成。 这个过程可以应用于任何需要定期备份的MySQL数据库,并通过FTP将备份传输到远程服务器以确保数据安全。值得注意的是,实际操作时应根据实际情况调整脚本中的路径、用户名、密码等参数,确保与你的环境相匹配。同时,对于大型数据库,可能还需要考虑备份性能优化,如分片备份、增量备份等策略。