這篇文章主要介紹“如何編寫一鍵備份gitolite服務(wù)器的Shell腳本”,在日常操作中,相信很多人在如何編寫一鍵備份gitolite服務(wù)器的Shell腳本問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”如何編寫一鍵備份gitolite服務(wù)器的Shell腳本”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
運(yùn)行一次就能夠把gitolite服務(wù)器上的倉庫備份到本地. 第一次運(yùn)行會(huì)創(chuàng)建遠(yuǎn)程倉庫的本地鏡像, 以后每次運(yùn)行會(huì)把本地鏡像更新.
本程序只支持 ssh方式
其他的git server貌似不會(huì)在 ssh git@xxx 的時(shí)候返回repo列表, 所以只能手動(dòng)備份.
#!/bin/sh server=serv_addr root_dir=`pwd` echo "whill back in dir: ${root_dir}" ssh "git@${server}" | awk '{print $1$2,$3}' | grep "^RW" | awk '{print $2}' | while read line do echo " " echo "-------------------------------------" if [ ! -d "${root_dir}/${line}.git" ]; then echo "repo not init on local, init it ..." mkdir -p "${root_dir}/${line}.git" cd "${root_dir}/${line}.git" cd .. git clone --mirror "git@${server}:${line}.git" else echo "repo already init on local, update it ..." cd "${root_dir}/${line}.git" git remote update git gc fi done
到此,關(guān)于“如何編寫一鍵備份gitolite服務(wù)器的Shell腳本”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!