Python备份Mysql脚本
代码如下:
#!/usr/bin/python
import os
import time
import ftplib
import traceback
#config vars
systempathchr="/" #路径分割符,*nix用"/" win32用"\\"
dbuser="root" #数据库用户名
dbpwd="dbpwd" #数据库密码
dbnamelist=["dbone","dbtwo","dbthree"] #需要备份那些数据库
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=[]
def ftpstor():
#login
bufsize=1024
ftp=ftplib.FTP()
try:
ftp.connect(ftp_addr,ftp_port)
ftp.login(ftp_user,ftp_pwd)
ftp.cwd(ftp_path)
for filepath in ftpqueue:
#open file for input as binary
f=open(filepath,"rb")
#store file as binary
print getfilename(filepath)
ftp.storbinary("STOR "+getfilename(filepath),f,bufsize)
f.close()
ftp.quit()
except:
path=os.path.join(workdir,errlogfile)
traceback.print_exc(file=open(path,"a"))
def dumpdb(dbname):
global ftpqueue
timeformat="%Y%m%d"
sqlvalformat="mysqldump -u%s -p\"%s\" \"%s\" >\"%s\""
tarvalformat="tar --directory=\"%s\" -zcf \"%s\" \"%s\""
nowdate=time.strftime(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(tarval)
os.remove(dumpfile)
ftpqueue.append(zipfile)
def getfilename(path):
pt=path.rfind(systempathchr)
return path[pt+1:]
def main():
for dbname in dbnamelist:
dumpdb(dbname)
ftpstor()
main()
没有仔细看,不过下面这两句,推荐看看os.path模块里面的函数,可能就不用针对linux和win分别设定不同的分隔符了
#config vars
systempathchr="/" #路径分割符,*nix用"/" win32用"\\"
看到代码里面是用在得到文件名的,可以试试os.path.basename活着os.path.split了
代码如下:
>>> import os.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.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'
(资源库 www.zyku.net)
您可能感兴趣的文章
- 04-24一小时学会Python入门教程
- 04-09python实现自动化群控的步骤
- 04-09python 调用js的四种方式
- 04-09Python WSGI 规范简介
- 04-08python实现求纯色彩图像的边框
- 04-08python3使用diagrams绘制架构图的步骤
- 04-08python3 删除所有自定义变量的操作
- 03-31用python插入独创性声明
- 03-29正确的使用Python临时文件
- 03-28Python 执行函数的九种方法
- 03-12CentOS安装apc的方法
- 02-25vivox50退出平行空间方法
- 09-22华为welink怎么注销账号
- 10-27ios15如何添加桌面小组件
- 07-05Linux patch命令
- 03-31红米k40pro取消游戏加速教程
- 01-17CamHi app-CamHi app应用软件功能介绍
- 02-09pytorch中LN(LayerNorm)及Relu和其变
- 01-12日记账电子版-日记账电子版应用软件功
- 09-19微信视频号怎么添加商品
最近更新
阅读排行
猜你喜欢
- 11-26闲鱼怎么设置长辈模式
- 01-11StaCam-StaCam应用软件功能介绍
- 01-12一朵心芽-一朵心芽应用软件功能介绍
- 07-05Linux mkfs.ext2命令
- 01-11神行WiFi-神行WiFi应用软件功能介绍
- 01-13蓝天云办公-蓝天云办公应用软件功能介
- 07-05Linux od命令
- 05-13CKEditor 5 在线生成工具online-build
- 12-29流年壁纸头像大全-流年壁纸头像大全应
- 09-25天猫精灵怎么绑定家电