需求: 有一個SVN主服務器, 要建一個SVN鏡像服務器,以方便鏡像服務器所在區域能夠高速下載代碼
解決方案: 假定SVN主服務器的IP是192.168.1.131, 鏡像服務器的IP是192.168.2.132,且假定131 SVN數據庫的地址是/work/svn
步驟:
1. 在132上創建 /work/svn目錄
2. 在131和132上分別執行ssh-keygen -t rsa, 一路回車(全部默認)
3. 在131上執行$ssh-copy-id -i [email protected], 在132上執行$ssh-copy-id -i [email protected]
注: 完成第2、3步可以實現ssh訪問免密碼
4. 在132上新建一個ssh腳本,內容如下:
#!/bin/sh
while true
do
rsync -vzrtopgu --progress --delete [email protected]:/work/svn/ /work/svn
sync
sleep 1m
done
注:該腳本無限循環執行同步命令,每完成一次,休眠1分鐘
5. 完成以上動作後,在131上提交一筆代碼,待1分鐘之後,利用SVN客戶端登錄132服務器,可以看到最新的提交。
特別說明: 不要用計劃任務來做同步,因爲計劃任務並不能保證兩個任務是串行的(如第一個任務未完成,下一個任務又到來)