下面是详细的攻略:
1. 确定备份方式
在linux下备份MySQL数据,并上传到FTP上,一般有两种途径:
1.1. mysqldump备份
该方法是最常见的备份MySQL数据的方法,可以将MySQL的表结构和数据导出为一个.sql文件。通过该方法备份MySQL数据的示例代码如下:
#!/bin/bash
# 备份的数据库名
db_name="my_db"
# MySQL的用户名
db_user="root"
# MySQL的密码
db_pass="your_password"
# 备份文件的保存路径
backup_dir="/backup/mysql"
# 备份文件的保存名字
backup_name="${db_name}_$(date +%F-%H-%M-%S)"
# 导出SQL文件
mysqldump -u${db_user} -p${db_pass} ${db_name} > ${backup_dir}/${backup_name}.sql
# 压缩备份文件
gzip ${backup_dir}/${backup_name}.sql
1.2. mysqlhotcopy备份
该方法是在服务器本地备份MySQL数据的方法,可以直接备份MySQL数据对应的文件。通过该方法备份MySQL数据的示例代码如下:
#!/bin/bash
# 需要备份的数据库名
db_name="my_db"
# 备份文件的保存路径
backup_dir="/backup/mysqlhotcopy"
# 备份文件的保存名字
backup_name="${db_name}_$(date +%F-%H-%M-%S)"
# 备份数据到文件夹中
mysqlhotcopy --user=root --password=your_password ${db_name} ${backup_dir}/${backup_name}
# 将备份文件夹压缩为zip文件
zip -r ${backup_dir}/${backup_name}.zip ${backup_dir}/${backup_name}
# 删除备份文件夹
rm -rf ${backup_dir}/${backup_name}
2. 上传FTP
在备份完成之后,需要将备份文件上传到FTP服务器上,示例代码如下:
#!/bin/bash
# ftp连接相关信息
ftp_addr="your_ftp_addr"
ftp_user="your_ftp_user"
ftp_pass="your_ftp_password"
# 备份的文件夹路径
backup_dir="/backup/mysql"
# 上传文件
ftp -n $ftp_addr <<- EOF
user $ftp_user $ftp_pass
cd /backup
mkdir mysql
cd mysql
lcd $backup_dir
bin
put *.zip
bye
EOF
# 删除备份文件
rm -rf ${backup_dir}/*.zip
3. 定时执行备份
在完成以上两个步骤之后,我们可以使用crontab来定时执行备份任务。示例代码如下:
# 每天凌晨2点执行备份任务
0 2 * * * /bin/bash /path/to/backup.sh
这样我们就可以实现在linux环境下自动备份MySQL数据并上传到FTP上的功能啦!
示例说明
以下是两个示例说明:
示例1:
我们需要备份的数据库名为testdb,备份方式为mysqldump备份,FTP的地址为192.168.1.100,FTP用户名为ftp_user,FTP密码为ftp_password,备份文件的保存路径为/backup/mysql。使用crontab每晚10点执行备份任务。
-
根据以上攻略,编写mysqldump备份和FTP上传备份文件的shell脚本,并测试这两个脚本。
-
使用crontab安排每晚10点执行备份任务。
# 每晚10点执行备份任务
0 22 * * * /bin/bash /path/to/backup.sh
示例2:
我们需要备份的数据库名为testdb,备份方式为mysqlhotcopy备份,FTP的地址为192.168.1.100,FTP用户名为ftp_user,FTP密码为ftp_password,备份文件的保存路径为/backup/mysqlhotcopy。使用crontab每周六晚10点执行备份任务。
-
根据以上攻略,编写mysqlhotcopy备份和FTP上传备份文件的shell脚本,并测试这两个脚本。
-
使用crontab安排每周六晚10点执行备份任务。
# 每周六晚10点执行备份任务
0 22 * * 6 /bin/bash /path/to/backup.sh
以上两个示例仅作为参考,具体的备份策略需要根据不同的实际情况进行调整。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下自动备份MySQL数据并上传到FTP上的shell脚本 - Python技术站