python备份mysql到ftp_导出mysql 上传到ftp备份

导出mysql的库上传到ftp服务器备份,上传完毕删除本地文件。用crontab定时运行。用shell也很容以实现,毕竟在学习python,练习一下。

#!/usr/bin/env python

#-*- coding: utf-8 -*-

# ——————————————————————————-

# Filename: Back mysql

# Revision: 1.0

# Date: 2010-03-24

# Author: simon-zzm

# Email: simon-zzm@163.com

# Description:

# ——————————————————————————-

import os,time,sys

from ftplib import FTP

import datetime

###################设置参数

mysql_user=’root’

mysql_pass=’123456′

mysql_comm=’/usr/local/mysql/bin/mysqldump’

mysql_data=[‘test_a’,’test_b’] ###可以填写多个库

mysql_local_path=’/usr/local/checksystem/’

ftp_ip=’x.x.x.x’

ftp_user=’ftpuser’

ftp_pass=’test’

admin_mail=’simon-zzm@163.com’

###################开始运行

#导出的文件为gz的压缩文件,命名格式为ip地址、库名、导出日期组成。

###获得当前时间

get_time_now=time.strftime(‘%Y-%m-%d’)

###获得本机IP地址

ip = os.popen(“/sbin/ifconfig | grep ‘inet addr’ | awk ‘{print $2}'”).read()

get_local_ip = ip[ip.find(‘:’)+1:ip.find(‘n’)]

for i in mysql_data:

###拼成包名

mysql_back_name=mysql_local_path+get_local_ip+’_’+i+’_’+get_time_now+’.gz’

###拼成导出命令

gzip_command = “%s -u%s -p%s –opt %s |gzip >%s” %(mysql_comm,mysql_user,mysql_pass,i,mysql_back_name)

###导出并判断是否成功

if os.system(gzip_command)==0:

print ‘Back Successful’

###导出成功上传到ftp服务器

ftp=FTP()

ftp.set_debuglevel(2)

ftp.connect(ftp_ip,’21’)

ftp.login(ftp_user,ftp_pass)

file_handler = open(mysql_back_name,’rb’)

bufsize = 1024

ftp.storbinary(‘STOR %s’ % os.path.basename(mysql_back_name),file_handler,bufsize)

ftp.set_debuglevel(0)

file_handler.close()

ftp.quit()

print ‘up load over!’

###偷个懒使用linux命令将本地文件删掉。

os.popen(“/usr/bin/find “+mysql_local_path+”* -name *.gz -exec rm -rf {} ; “)

else:

print ‘false’

###如果导出失败,给管理员发个信,偷个懒使用linux命令解决。

mail_url=”/bin/mail -s “+get_local_ip+”back fail “+admin_mail+” os.popen(mail_url)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值