码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-03-06 19:11:31      阅读:201      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!