首页 > 编程语言 > 详细

shell和python对比对目录下不同文件

时间:2018-03-06 19:05:46      阅读:176      评论:0      收藏:0      [点我收藏+]
cat git_tar.py
import subprocess,tarfile,os
def finds():
tar = tarfile.open("test.tar.gz","w:gz")
result=subprocess.call(‘git diff 99gw 99gw_old>result.txt‘,shell=True)
if os.path.getsize(‘result.txt‘)!=0:
file=open(‘result.txt‘,‘r‘)
for line in file:
line=line.strip()
if line.startswith("diff --git a/"):
files=line.strip()
files=files.split()[2]
files=files[2:]
tar.add(files)
file.close()
tar.close()
else:
print ‘git not diff‘

if name==‘main‘:

finds()

vim UPGRADE.sh
#git clone code.
dirName=dirname $0
cd $dirName
[ -d 99gw_old ] || echo "Error: 99gw_old dir not exist."
git clone git@gitee.com:BangHan/99gw.git

#diff dir 99gw and 99gw_old
diff -urN 99gw 99gw_old |awk ‘/^diff -urN/{print $3}‘ > diff.txt
for var in $(cat diff.txt);do
dir=${var%/*}
[ -d temp ] || mkdir -p temp
[ -d temp/$dir ] || mkdir -p temp/$dir
[ -f $var ] && \cp -p $var temp/$dir
done

#rsyn diffed files to remote hosts.
hosts="
172.19.xx.xx
172.19.xx.xx
"
for host in $hosts;do
rsync -avz -e ssh temp/99gw/* $host:/tmp/99gw_old/;
done

#rename local git dir.
t=$(date +%Y%m%d_%H%M%S)
mv 99gwold 99gw$t && mv 99gw 99gw_old
[ $? -ne 0 ] && echo "directory rename error"

shell和python对比对目录下不同文件

原文:http://blog.51cto.com/2821932/2083571

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!