shell和python對比對目錄下不同檔案

來源:互聯網
上載者:User

標籤:技術文檔

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 [email protected]: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對比對目錄下不同檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.