资源描述:
《python备份mysql脚本_360》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Python备份Mysql脚本_360Python备份Mysql脚本[标签:作者][标签:来源][标签:时间]复制代码代码如下:#!/usr/bin/pythonimportosimporttimeimportftplibimporttraceback#configvarssystempathchr="/"#路径分割符,*nix用"/"win32用"\"dbuser="root"#数据库用户名dbpwd="dbpwd"#数据库密码dbnamelist=["dbone","dbtwo","dbthree"]#
2、需要备份那些数据库workdir="/path/to/backup/"#本地备份文件夹errlogfile="databack.log"#错误日志名ftp_addr="192.168.0.2"#ftp地址ftp_port="2102"#ftp端口ftp_user="databack"#ftp用户名ftp_pwd="backpwd"#ftp密码ftp_path="/"#存放到ftp路径ftpqueue=[]defftpstor():#loginbufsize=1024ftp=ftplib.FTP()try:ft
3、p.connect(ftp_addr,ftp_port)ftp.login(ftp_user,ftp_pwd)ftp.cwd(ftp_path)forfilepathinftpqueue:#openfileforinputasbinaryf=open(filepath,"rb")#storefileasbinaryprintgetfilename(filepath)ftp.storbinary("STOR"+getfilename(filepath),f,bufsize)f.close()ftp.quit()
4、except:path=os.path.join(workdir,errlogfile)traceback.print_exc(file=open(path,"a"))defdumpdb(dbname):globalftpqueuetimeformat="%Y%m%d"sqlvalformat="mysqldump-u%s-p"%s""%s">"%s""tarvalformat="tar--directory="%s"-zcf"%s""%s""nowdate=time.strftime
5、(timeformat)dumpfile=os.path.join(workdir,dbname+".dump")zipfile=os.path.join(workdir,dbname+nowdate+".tar.gz")sqlval=sqlvalformat%(dbuser,dbpwd,dbname,dumpfile)result=os.system(sqlval)tarval=tarvalformat%(workdir,zipfile,dbname+".dump")result=os.system(tar
6、val)os.remove(dumpfile)ftpqueue.append(zipfile)defgetfilename(path):pt=path.rfind(systempathchr)returnpath[pt+1:]defmain():fordbnameindbnamelist:dumpdb(dbname)ftpstor()main()没有仔细看,不过下面这两句,推荐看看os.path模块里面的函数,可能就不用针对linux和win分别设定不同的分隔符了引用#configvarssystempath
7、chr="/"#路径分割符,*nix用"/"win32用"\"看到代码里面是用在得到文件名的,可以试试os.path.basename活着os.path.split了复制代码代码如下:>>>importos.path>>>os.path.basename("c:\test\aa.txt")'aa.txt'>>>os.path.split("c:\test\aa.txt")('c:\test','aa.txt')>>>os.path.split("c:\test\aa.txt")[-1]'aa.
8、txt'>>>os.path.basename("/home/test/aa.txt")'aa.txt'>>>os.path.split("/home/test/aa.txt")('/home/test','aa.txt')>>>os.path.basename("/home/test/aa.txt")'aa.txt'