python备份mysql到ftp_python写的备份mysql自动上传ftp服务器推荐

这几天没有怎么去研究nginx,闲来无事,写了一个python脚本·写的有点乱,以后慢慢精简,慢慢进化.

功能:

备份

mysql 的数据库,备份到 /home/eric 目录下,保留5天的备份文件过期删除,自动上传到 ftp server 服务器。

#!/usr/bin/python

# Filename: mysqlbackup-ftp.py

# version 0.01

# QQ:277057817

import os

import time

import sys

import datetime

from stat import *

from ftplib import FTP

## mysql user

User = 'root'

## mysql password

Passwd = '123456'

## mysqldump command

Mysqlcommand = '/usr/bin/mysqldump'

## you want backup mysql database

Mysqldata = 'mysql'

## you want backup to dir

tobackup = '/home/eric/'

## backup file name

backfilename = tobackup + time.strftime('%Y-%m-%d')+'.gz'

## backup gzip command

gzip_command = "%s -u%s -p%s --opt %s |gzip >%s" %(Mysqlcommand,User,Passwd,Mysqldata,backfilename)

if os.system(gzip_command)==0:

print 'Successful backup to',backfilename

else:

print 'Backup FAILED'

# ################删除过期备份文件#############################

# 创建文件列表

filelist=[]

filelist=os.listdir(tobackup)

## 循环删除本地前5天的备份数据

for i in range(len(filelist)):

ft=time.gmtime(os.stat(tobackup+filelist[i])[ST_MTIME])

ftl=time.strftime('%Y-%m-%d',ft)

year,month,day=ftl.split('-')

ftll=datetime.datetime(int(year),int(month),int(day))

localt=time.gmtime()

localtl=time.strftime('%Y-%m-%d',localt)

year,month,day=localtl.split('-')

localtll=datetime.datetime(int(year),int(month),int(day))

days=(localtll-ftll).days

if days >5:

try:

os.remove(tobackup+filelist[i])

print 'delete is ok'

except:

log=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+" remove "+tobackup+filelist[i]+" fail \n"

print log

########### FTP 上传#####################

## upload ftp server

ftp=FTP()

ftp.set_debuglevel(2)

ftp.connect('192.168.6.2','21')

ftp.login('eric','123456')

#ftp.cwd()

bufsize = 1024

file_handler = open(backfilename,'rb')

ftp.storbinary('STOR %s' % os.path.basename(backfilename),file_handler,bufsize)

ftp.set_debuglevel(0)

file_handler.close()

ftp.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值