python svn库_用python实现自动备份svn版本库

代码没做异常处理,暂时只是实现了基本功能。

python版本3.2.2

具体代码如下:

import os

import string

import datetime

import subprocess

#定义subversion的安装目录

SVN_HOME = "D:/Service/VisualSVN"

#定义所有版本库的父目录

SVN_ROOT="E:/Repositories"

#定义备份的目录

BACKUP_SVN_ROOT="D:/backup/SVN"

#获得今天日期,并格式化为xxxx-xx-xx的形式

today = datetime.date.today()

date = today.strftime('%Y')+'-'+today.strftime('%m')+'-'+today.strftime('%d')

#获取需要备份的版本库

def getrepositories(dir):

repdir = []

os.chdir(dir)

curdir = os.getcwd()

for i in os.listdir(curdir):

needbackdir = curdir.replace('\\','/') + "/" + i

conf = needbackdir + "/conf/svnserve.conf"    #判断是否是版本库

if os.path.isfile(conf):

repdir.append(needbackdir)

return(repdir)

#备份需要备份的版本库

def backuprepositories(repdir,databackupdir):

backupdir = databackupdir + "/" +os.path.basename(repdir)

backupcmd = SVN_HOME + "/bin/svnadmin hotcopy" +" " + os.path.basename(repdir) + " " + backupdir

subprocess.call(backupcmd, shell=True)

#定义每日备份目录,如果存在先删除

databackupdir = BACKUP_SVN_ROOT + "/" + date

if os.path.isdir(databackupdir):

os.rmdir(databackupdir)

os.mkdir(databackupdir)

#实际备份操作

for i in getrepositories(SVN_ROOT):

backuprepositories(i,databackupdir)

windows下使用要实现自动备份,可以另写一个backupsvn.bat,文件,加入到计划任务里进行操作,

backupsvn.bat 中的内容如下:

C:/Python32/python.exe d:/auto/backsvn.py

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值