我正在为部署创建一个python脚本,通过比较两个文件夹(dev
,prodmirror
)来生成增量文件,然后备份现有文件并复制到prodmirror
文件夹,还将增量ftp到服务器。你知道吗
下面是代码。。你知道吗
问题:def difference\u dict(dict\u A,dict\u B)只需标识A-B,但如果文件在B中发生更改(即prodmiror),则返回,此处需要一些帮助/指针。你知道吗
import os
import hashlib
srcdir = 'C:\dev'
tgtdir = 'C:\prodmirror'
# definition of function to retrieve MD5 using small chunks of file
def md5(fname):
hash_md5 = hashlib.md5()
with open(fname,'rb') as f:
for chunk in iter(lambda: f.read(2 ** 20), b""):
hash_md5.update(chunk)
return hash_md5.hexdigest()
# definition of function to find dictionaries difference,i.e present in A not in B
def difference_dict(Dict_A, Dict_B):
output_dict = {}
for key in Dict_A.keys():
if key not in Dict_B.keys():
output_dict[key] = Dict_A[key]
return output_dict
srcdict={}
for path, subdirs, files in os.walk(srcdir):
for filename in files:
f = os.path.join(path, filename)
srcdict[md5(f)]= f
print("SRC Dict :"+str(srcdict))
tgtdict={}
for path, subdirs, files in os.walk(tgtdir):
for filename in files:
f = os.path.join(path, filename)
tgtdict[md5(f)]= f
print("TGT Dict :"+str(tgtdict))
print("DIFF Dict :"+str(difference_dict(srcdict,tgtdict)))
最后,在尝试了一些脚本和网络延迟的同步问题后,我们解决的最好的免费选择是一个免费工具。。winscp,下面是如何编写文档>;https://winscp.net/eng/docs/task_synchronize_full
优点我发现能够同步在安全协议在二进制模式和自动监视设施(我们不使用,但很好) 第一个副本,在本地复制服务器文件夹并启动同步(两种模式可用,自动/手动)
所以无论您做什么更改,该工具都将与服务器副本进行比较,并且只移动更改的文件!你知道吗
从windows到linux。你知道吗
相关问题 更多 >
编程相关推荐