备份数据库压缩备份文件上传备份文件

#!/usr/bin/evn python3
# -*- coding :utf-8 -*-

import time
import os
from zipfile import ZipFile
from os import listdir
from os.path import isfile, isdir, join
from ftplib import FTP

mon = str(time.localtime().tm_mon)
if int(mon) <= 9:
    mon = '0'+mon
date = str(time.localtime().tm_year) + mon + str(time.localtime().tm_mday)
date_del = time.time() - 60 * 60 * 24 * 3
mondel = str(time.localtime(date_del).tm_mon)
if int(mondel) <= 9:
    mondel = '0'+mondel
date_del = str(time.localtime(date_del).tm_year) + mondel + str(time.localtime(date_del).tm_mday)
bak_dir = 'D:\\mysql_bak' + '\\' + date + '\\'
del_dir = 'D:\\mysql_bak' + '\\' + date_del
if not os.path.isdir(bak_dir):
    os.mkdir(bak_dir)

mysqldump = 'D:\\app\\mysql56\\bin\\mysqldump --defaults-extra-file=D:\\mysql_bak\\x5m_db_user.cnf --default-character-set=utf8 --quote-names -R --opt -A > ' + bak_dir + 'all_databases.sql'
os.system(mysqldump)

if os.path.isdir(del_dir):
    os.remove(os.path.join(del_dir, 'all_databases.sql'))
    os.rmdir(del_dir)


def addFileIntoZipfile(srcDir, fp):
    for subpath in listdir(srcDir):
        subpath = join(srcDir, subpath)
    if isfile(subpath):
        fp.write(subpath)
    elif isdir(subpath):
        fp.write(subpath)
        addFileIntoZipfile(subpath, fp)


def zipCompress(srcDir, desZipfile):
    with ZipFile(desZipfile, mode='a') as fp:
        addFileIntoZipfile(srcDir, fp)

zipdir = 'D:\\mysql_bak' + '\\' + date + '.zip'
delzipdir = 'D:\\mysql_bak' + '\\' + date_del + '.zip'
filedeletename = date_del + '.zip'
datehome = 'D:\\mysql_bak'

paths = [bak_dir]
for path in paths:
    zipCompress(path, zipdir)
if filedeletename in os.listdir(datehome):
    os.remove(delzipdir)
else:
    print('do not find file %s!' % filedeletename)





host = '172.16.60.205'
username = 'jfedu1'
password = '123456'
ftpuploadhome = '/home/jfedu1'
ftp = FTP()
timeout = 30
port = 21
ftp.connect(host)
ftp.login(username, password)
print(ftp.getwelcome())
ftp.cwd(ftpuploadhome)
path = zipdir
filename = date + '.zip'
ftp.storbinary('STOR ' + filename, open(path, 'rb'))
uploadfile = ftpuploadhome + '/' + filename
if uploadfile in ftp.nlst(ftpuploadhome):
    print('upload success!')
else:
    ftp.storbinary('STOR ' + filename, open(path, 'rb'))
ftp.quit()

  笔记解决问题思路;首先是备份数据库,要求用完全备份,备份后删除3天前的备份数据,然后是压缩文件,同样删除3天前压缩的文件

最后是吧压缩的文件上传到ftp服务器,检查上传是否成功!

转载于:https://www.cnblogs.com/aohui/p/9548906.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值