CENTOS7定时备份上传数据至FTP服务器及删除历史备份

CENTOS7定时备份mysql上传数据至FTP服务器中

实现服务定时备份与历史数据删除

之前按照网上的方式去写定时备份脚本,遇到很多问题,第一就是,lcd和mput一直不起作用,后面发现是vi编辑复制存在问题,后面通过vim逐个手敲解决lcd命令不起作用的问题,随之而来出现第二个问题,就是使用mput传输多个文件只传一个,第一个成功之后后续一直提示是否要传,后续发现除了第一个其他的都不上传上去。花了一天时间在网上各种找方法都不行,自己发现通过定义多个参数可以实现传输,然后就搞定了。

脚本如下

#!/bin/bash
TIME=$(date +%Y%m%d)
TIME1=$(date -d "-1 day" +%Y%m%d)  #定义时间变量
TIME2=$(date -d "-2 day" +%Y%m%d)
TIME3=$(date -d "-3 day" +%Y%m%d)
FILE=a.tar.gz
mysqlUsername=user #数据库用户名
mysqlPassword=passwd   #数据库密码
mysqlhost=ip        #数据库地址
mysqlschema=database  #需要备份的数据库
day=30        #数据库备份保留天数

#开始备份
mysqldump -u$mysqlUsername -p$mysqlPassword  -h$mysqlhost   $mysqlschema>$(date +%Y%m%d)_$mysqlschema.sql

#打包备份文件
tar -zcvf - $(date +%Y%m%d)_$mysqlschema.sql | openssl des3 -salt -k passwd -out $(date +%Y%m%d)_$mysqlschema.tar.gz

#删除sql
rm -rf $(date +%Y%m%d)_$mysqlschema.sql

#删除过期的备份
rm -rf $(date  +%Y%m%d -d  "-$day days")_$mysqlschema.tar.gz

ftp -ivn ftpip<<EOF
        user user password
        binary
        cd /Ren/sqlbak/ZGBAK  #FTP存储地址
        mdelete *.tar.gz    #删除ftp服务多余备份
        lcd /var/www/file/sys_report  #本地备份数据地址
        passive off 
        mput $TIME\_$FILE $TIME1\_$FILE $TIME2\_$FILE $TIME3\_$FILE  #需要备份的数据
        bye
EOF
echo "sucessfull"

注意:如果纯出现批量上传没办法全部传输,大部分与prompt这个参数有关,在对应节点新增或删除即可
加上定时任务每天执行一次就完成定时推送备份了

0 6 * * * root cd /var/www/file/sys_report && /bin/bash /var/www/file/sys_report/ftp.sh

传送门
https://blog.youkuaiyun.com/yanchenyu365/article/details/82256482

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值