# Ftp-Mysql数据库全量自动备份删除7天前备份



自动备份MySQL数据库到远程FTP服务器并删除指定日期前的备份Shell脚本

```bash
#!/bin/sh
/etc/init.d/mysqld stop                     #执行备份前先停止MySql，防止有数据正在写入，备份出错          
date=` date +%Y%m%d `                       #获取当前日期
DAYS=7                                      #DAYS=7代表删除7天前的备份，即只保留最近7天的备份
BK_DR=/home/mysql_data                      #备份文件存放路径
DB_DR=/var/lib/mysql/pw85                   #数据库路径
LINUX_USER=root                             #系统用户名
tar zcvf $BK_DR/mysql_data$date.tar.gz $DB_DR    #备份数据
/etc/init.d/mysqld start                         #备份完成后，启动MySql
chown -R $LINUX_USER:$LINUX_USER $BK_DR         #更改备份数据库文件的所有者
find $BK_DR -name "mysql_data*" -type f -mtime +$DAYS -exec rm {} \;       #删除7天前的备份文件(注意：{} \;中间有空格)
deldate=` date -d -7day +%Y_%m_%d `                                        #删除ftp服务器空间7天前的备份

ftp -ivn <<EOF
open 192.168.1.1 21                                                 #打开ftp服务器。21为ftp端口
user admin 123456                                                          #用户名、密码
binary                                                                     #设置二进制传输
cd mysqlbak                                                                #进入ftp目录（注意：这个目录必须真实存在）
lcd /home/mysql_data                                                       #列出本地目录
prompt
mput mysql_data$date.tar.gz   mysql_data$date.tar.gz                       #上传目录中的文件
mdelete mysql_data$deldate.tar.gz mysql_data$deldate.tar.gz                #删除ftp空间7天前的备份
quit                                                                      #退出
EOF
```
