有时候会进行文件转移一般都是rsync,但是rsync转移会花费好几个小时,转移期间还是会有新文件上传,而且转移结束后需要改读写的路径到新路径,这样会丢失转移期间的文件,所以写了一个简单的python检查一下,
代码如下
记得给我宝贵意见:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
'''
auth yufei
2015-5-10
转文件了,转移期间可能有上传的新文件,对比一下
'''
import filecmp,os
data = {}
def chkdir(dir1,dir2):
print "---chk dir---"
#d = filecmp.dircmp(r'/filesystem/file.goodid.com/20000/2015/05/09/',r'/filesystem/file.goodid.com/20000/2015/05/09/')
d = filecmp.dircmp(dir1,dir2)
diffs = d.left_only
print "diffs:",diffs
if diffs != []:
return diffs
return 0
for uid in range(20000,2000000):#按uid存的所以要跑一下所有的uid
print "uid:" , uid
dir1 = "/data/filesystem/file.goodid.com/"+str(uid)+"/2015/05/09/" #转移前的目录
dir2 = "/datas/filesystem/file.goodid.com/"+str(uid)+"/2015/05/09/" #转移后的目录
print dir1,dir2
if os.path.exists(dir1):
if os.path.exists(dir2):
diffs = chkdir(dir1,dir2)
else:
data[uid] = dir1
else:
print "dir1 not ext" #目录不存在跳过
continue
print "diffs 2:",diffs
if diffs != 0:
print "get data"
data[uid] = diffs #记录文件不一样的uid和不同部分(然后可以批量复制)
continue
f = open(r"/tmp/diff.log",'wb')
f.write(str(data));
f.close()
print data