ps:备份库多开始使用git了,但也有部分svn的更新一下自动备份脚本如下:
-------------------源码-------------------------------------
-------------------源码-------------------------------------
# -*- coding: UTF8 -*-
# address : http://www.cnblogs.com/heikediguo/archive/2012/07/12/2588163.html
import subprocess
import sys
import string
import time
import os
import ConfigParser
class getini():
"""读取save.ini中的配置要求 """
def __init__(self,path="save.ini"):
cg=ConfigParser.ConfigParser()
cg.read(path)
self._getinidata(cg)
def _getinidata(self,cg):
#读取ini中日志存储位置,git和svn库要自动备份的列表
self.logfile=cg.get("log","filepath")
self.git_lists=cg.items("git")
self.svn_lists=cg.items("svn")
#print "logfile: %s" % self.logfile
print "git_lists:%s" % self.git_lists
print "svn_lists:%s" % self.svn_lists
def getlogfile(self):
return self.logfile
def getgitlists(self):
return self.git_lists
def getsvnlists(self):
return self.svn_lists
class Log:
logfile = ''
def config(self, _logfile):#调用这个方法实现判断日志文件位置
if _logfile != '':
self.logfile = _logfile
else:
self.logfile = 'run.log'
def log(self, _msg):#调用此方法实现保存记录到文件中去
now = time.time()
strtime = str(time.localtime(now)[0]) + '-' + str(time.localtime(now)[1]) \
+ '-' + str(time.localtime(now)[2]) \
+ ' ' + str(time.localtime(now)[3]) \
+ ':' + str(time.localtime(now)[4]) \
+ ':' + str(time.localtime(now)[5])
msg = strtime + ' ' + _msg + '\n'
#save log
self.savelog(msg)
def savelog(self,message):
logfilehandle=open(self.logfile,"a+")
logfilehandle.write(message)#write file
logfilehandle.close()
def daemonize(logpath="test.log"):
dir = 'F:\\pc\\'
#run(dir+'learning\\unittest\\unittest')
run(dir+'learning\\',logpath)
run(dir+'thinking\\',logpath)
#googlecode svn 处理
_gock= 'F:\ckbf\db'
subprocess.call('svn add '+ _gock + ' --force') #增加全部增量文件
subprocess.call('svn commit '+ _gock + ' --message "script add" ')
#subprocess.call("pause")
os.system('pause')
def commit_doing(cg):
logfile=cg.getlogfile()
for (s_name,s_path) in cg.getgitlists():
run_git(s_path,logfile)
for (s_name,s_path) in cg.getsvnlists():
run(s_path,logfile)
def run_git(path,logpath):
"""git file 处理 """
log=Log()
logfile=logpath
os.system("cd /d "+path)
print path
os.system('git commit -m "script add"')
print ('=============================')
#日志更新
log.config(logfile)
log.log('[git] '+ path + ' 已更新')
def run(path,logpath):
"""svn file 处理 """
log = Log()
logfile = logpath
subprocess.call('svn commit ' + path + ' --message "script add" ' )
cur = path.replace('\\\\', '\\')
print (cur + ' 已提交')
subprocess.call('svn up ' + path)
print ('=============================')
#记录更新的日志
log.config(logfile)
log.log('[svn] '+cur + ' 已更新')
if cur == 'toolbar':
log.log('================================')
if __name__=="__main__":
a=getini()
#daemonize(a.getlogfile())
commit_doing(a)
-----------------------
ini文件结构如下:
[log] filepath=save.log [git] gitckbf=F:\git-ckbf\web-ana gitana=F:\pc\working\test_selenium\web-ana\git-use\web-ana [svn] think=F:\pc\thinking map=F:\pc\map learn=F:\pc\learning
没有评论:
发表评论