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

时间:2021-02-26 00:30:53

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

2011年11月03日 ⁄ Shell暂无评论

                             
说明:

我这里要把 MySQL数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为 mysql_data20111103.tar.gz的压缩文件格式(20111103是指备份执行时当天的日期),然后只保留最近7天的备份,再把备份 文件通过ftp服务器上传到指定空间,并且在远程ftp服务器只保留最近7天的备份。
系统运维  www.osyunwei.com  温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接

实现步骤:
1、创建保存备份文件的目录:/home/mysql_data
cd /home
mkdir mysql_data
2、创建备份脚本文件:/home/mysql_data/mysql_databak.sh
cd /home
cd mysql_data
touch mysql_databak.sh
vim mysql_databak.sh
输入以下内容:

1

#!/bin/sh

2

/etc/init.d/mysqld  stop   #执行备份前先停止MySql,防止有数据正在写入,备份出错          

 

3

date=` date +%Y%m%d `      #获取当前日期

4

DAYS=7                      #DAYS=7代表删除7天前的备份,即只保留最近7天的备份

 

5

BK_DR=/home/mysql_data    #备份文件存放路径

6

DB_DR=/var/lib/mysql/pw85   #数据库路径

 

7

LINUX_USER=root            #系统用户名

8

tar zcvf  $BK_DR/mysql_data$date.tar.gz $DB_DR  #备份数据

 

9

/etc/init.d/mysqld  start  #备份完成后,启动MySql

10

chown -R $LINUX_USER:$LINUX_USER $BK_DR  #更改备份数据库文件的所有者

 

11

find $BK_DR -name "mysql_data*" -type f -mtime +$DAYS -exec rm {} \; #删除7天前的备份文件(注意:{} \;中间有空格)

12

deldate=` date -d -7day +%Y_%m_%d ` #删除ftp服务器空间7天前的备份

 

13

ftp -n<open 192.168.1.1  21 #打开ftp服务器。21为ftp端口

14

user admin 123456 #用户名、密码

 

15

binary #设置二进制传输

16

cd mysqlbak #进入ftp目录(注意:这个目录必须真实存在)

 

17

lcd /home/mysql_data #列出本地目录

18

prompt

 

19

mput  mysql_data$date.tar.gz   mysql_data$date.tar.gz #上传目录中的文件

20

mdelete mysql_data$deldate.tar.gz  mysql_data$deldate.tar.gz #删除ftp空间7天前的备份

 

21

close #关闭

22

bye ! #退出

3、修改文件属性,使其可执行
chmod +x /home/mysql_data/mysql_databak.sh
4、修改/etc/crontab #添加计划任务
vi /etc/crontab #在下面添加 
5 23 * * * root /home/mysql_data/mysql_databak.sh#表示每天23点05分执行备份
5、重新启动crond使设置生效
/etc/rc.d/init.d/crond restart
chkconfig crond on #设为开机启动
service crond start #启动
每天你在/home/mysql_data目录下面可以看到类似mysql_data20111103.tar.gz这样的压缩文件,
如果需要恢复文件的时候,只需要把这个文件解压即可。
解压缩命令:tar -zxvf  mysql_data20111103.tar.gz