MySql教程

Python 导出本机mysql数据库,打包、并上传至ftp服务器

本文主要是介绍Python 导出本机mysql数据库,打包、并上传至ftp服务器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

# 引入包
import os, shutil, ftplib, zipfile, datetime;

# mysqldump命令路径
mysqldump = 'mysqldump';

# mysql配置
user = 'xmsb';
pwd = '123456';

# 要备份的库名.表名
databases = ['database1', 'database2'];
tables = ['database.table1', 'database.table2'];

# FTP服务器配置
host = '127.0.0.1';
username = 'xmsb';
password = '123456';
cd = '/home/xmsb/';

# 获取当前时间
now = datetime.datetime.now().strftime('%Y-%m-%d_%H%M%S');

# 创建文件夹
path = os.getcwd() + os.sep + 'history';
if os.path.isdir(path) == False:
    os.mkdir(path);

mPath = path + os.sep + str(now);
os.mkdir(mPath);

dPath = mPath + os.sep + 'databases';
os.mkdir(dPath);

tPath = mPath + os.sep + 'tables';
os.mkdir(tPath);

# 执行备份
cmd = mysqldump + ' -u' + user + ' -p' + pwd + ' ';

for i in databases:
    os.system(cmd + i + ' > ' + dPath + os.sep + i + '.sql');
for i in tables:
    os.system(cmd + i.replace('.', ' ') + ' > ' + tPath + os.sep + i.replace('.', '_') + '.sql');
    
# 打包文件
fileName = 'history' + os.sep + now + '.zip';
zip = zipfile.ZipFile(fileName, 'w', zipfile.ZIP_DEFLATED, allowZip64 = True);
for root, dir, files in os.walk(mPath):
    root_ = os.path.relpath(root, mPath);
    for file in files:
        tmpPath = os.path.join(root, file);
        tmpPath_ = os.path.join(root_, file);
        zip.write(tmpPath, tmpPath_);
        
zip.close();

# 连接ftp服务器并上传文件
ftp = ftplib.FTP();
ftp.set_pasv(False);
ftp.connect(host, 21);
ftp.login(username, password);
ftp.cwd(cd);
ftp.storbinary('STOR '+ now + '.zip', open(fileName, 'rb'), 1024);
ftp.close();

# 删除临时文件夹
shutil.rmtree(mPath);

 

这篇关于Python 导出本机mysql数据库,打包、并上传至ftp服务器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!