obeckham 发表于 2018-8-22 11:21:11

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

  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()
  files=files
  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 $vartemp/$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"


页: [1]
查看完整版本: shell和python对比对目录下不同文件