本文共 1190 字,大约阅读时间需要 3 分钟。
cat git_tar.py
import subprocess,tarfile,osdef 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.txtfor var in $(cat diff.txt);dodir=${var%/*}[ -d temp ] || mkdir -p temp[ -d temp/$dir ] || mkdir -p temp/$dir[ -f $var ] && \cp -p $var temp/$dirdone#rsyn diffed files to remote hosts.
hosts="172.19.xx.xx172.19.xx.xx"for host in $hosts;dorsync -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"转载于:https://blog.51cto.com/2821932/2083571