首页 > linux, mysql > python写的备份mysql自动上传ftp服务器

python写的备份mysql自动上传ftp服务器

2010年7月1日 eric 发表评论 阅读评论

这几天没有怎么去研究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()

转载请注明:文章转载自:Eric's linux and nginx! (http://www.nginxs.com)
本文地址:http://www.nginxs.com/linux/187.html

分类: linux, mysql 标签: , ,
  1. 麦子
    2010年7月1日17:58 | #1

    很强大。

  2. 2018年4月6日18:32 | #2

    Cherished the service: Lawn Love was great!

  3. 2018年4月7日07:29 | #3

    Your flooring definitely needs refinishing, and soon.

  4. 2018年4月7日11:22 | #4

    online slots
    online slots
    real money casino
    casino online
    real money casino

  5. 2018年4月7日15:13 | #5

    That’s the reason flatbed tow vehicles exist.

  6. 2018年4月9日15:17 | #6

    We didn’t discover results for: water therapy
    companies.

  7. 2018年4月10日02:55 | #7

    We did not discover outcomes for: water remedy services.

  8. 2018年4月12日19:26 | #8

    This could fully remove the surface mold.

  9. 2018年4月15日22:47 | #9

    Use a buffer with a pink pad to remove excess oil.

  10. 2018年4月15日23:50 | #10

    Spills, sand and grit should be eliminated promptly.

  11. 2018年4月16日02:00 | #11

    Transforming a completed basement is costlier.

  12. 2018年4月16日21:12 | #12

    Huntington Long Island Cesspool Service from Magnum.

  13. 2018年4月17日15:22 | #13

    We did not find results for: Hardwood flooring.

  14. 2018年4月21日02:01 | #14

    For flat flooring, use a random orbital sander.

  15. 2018年4月21日03:30 | #15

    Cracks in your basement walls or floors.

  16. 2018年4月21日21:32 | #16

    Installation of the vapor barrier was truly the easy half.

订阅评论
5+6= (必填)