我用git的目的主要是為了資料的完整性,資訊不丟失,雖然repository的**伺服器和本地都會存乙份,但有時候自己的小片段**很多(比如github的gist),不可能每天都用得到,需要定期的備份,以備不時之需(比如網路斷開、伺服器當機等因素)。
通過某種方法獲取需要備份repository的名稱(比如靜態配置等),如果在指定目錄裡面該repository存在(即資料夾存在), 進入資料夾,執行git pull操作; 如果不存在,執行git clone操作。
git伺服器ip:192.168.1.100
git賬戶:git
repositories:/home/git/test1.git,/home/git/test2.git
正常訪問:
git clone [email protected]:test1.git
git clone [email protected]:test2.git
1、配置config檔案
config配置如下:
host host100這個不懂的可以參考這裡:hostname
192.168.1.100
user git
identityfile c:/users/admin/.ssh/id_rsa_gitbackup
2、批量獲取
python**:
import1、配置config檔案oshostname = "
host100
"dirs =[
'test1',
'test2']
for dirname in
dirs:
print dirname,": "
,
if os.path.exists(dirname): #
如果存在執行pull操作
strcmd = "
cd %s && git pull && cd ..
" %dirname
os.system(strcmd)
else: #
不存在則執行clone操作
strcmd = "
git clone %s:%s.git
" %(hostname,dirname)
os.system(strcmd)
host github2、備份repositories(以我的github為例)hostname github.com
user git
identityfile c:/users/admin/.ssh/id_rsa_github
host gist
hostname gist.github.com
user git
identityfile c:/users/admin/.ssh/id_rsa_github_gist
(1)命令列訪問方式:
git clone github:mike-zhang/cppcalllua.git
(2)python指令碼批量操作:
#(3)執行效果for github
import
oshostname = "
github
"username = "
mike-zhang
"reponames =[
'cppcalllua',
'testcodes']
for repo in
reponames:
print repo,": "
,
ifos.path.exists(repo):
strcmd = "
cd %s && git pull && cd ..
" %repo
os.system(strcmd)
else
:
strcmd = "
git clone %s:%s/%s.git
" %(hostname,username,repo)
os.system(strcmd)
3、備份gist(以我的gist為例)
(1)命令列操作
git clone [email protected]:4166192.git gist-4166192
(2)python指令碼批量操作
這裡以兩個gist例子:
view code
#(3)執行效果for gist
import
oshostname = "
gist
"username = "
mike-zhang
"reponames =[
'4166192',
'4084385']
for gist in
reponames:
print gist,": "
,
ifos.path.exists(gist):
strcmd = "
cd %s && git pull && cd ..
" %gist
os.system(strcmd)
else
:
strcmd = "
git clone %s:%s.git
" %(hostname,gist)
os.system(strcmd)
我這裡考慮的比較簡單,更強大的功能還需讀者自行擴充套件。
原始碼位址(gist):
批量備份.md
歡迎補充
批量備份指令碼
寫個小指令碼紀念一下tee這個命令,批量備份http的源 執行命令如下 1 2 jason at xjx macin script fab f backup.py backup teebackup.log 輸出 生成已當前日期命名的xz壓縮包,例如 httpd 20160104.tar.xz 指令碼...
git批量pull Git批量拉取
最近發現我的 git 倉庫越來越多了!因為很多倉庫都是開源組織維護的,還有一些是資源庫,用來多台機器共享使用的,因此需要經常保持最新。由於乙個個拉太浪費時間了,所以需要乙個批量拉取這些 git 倉庫的工具。在網上找了一圈,找到乙個 python 寫的開源工具 gitup,看介紹挺滿足我的需要,但是在...
git批量pull Git批量拉取
最近發現我的 git 倉庫越來越多了!因為很多倉庫都是開源組織維護的,還有一些是資源庫,用來多台機器共享使用的,因此需要經常保持最新。由於乙個個拉太浪費時間了,所以需要乙個批量拉取這些 git 倉庫的工具。在網上找了一圈,找到乙個 python 寫的開源工具 gitup,看介紹挺滿足我的需要,但是在...