專案開發階段往往需要頻繁的提交**,如果不加svn鉤子的話,每次提交都要到專案目錄下執行一下svn up,非常費事,所以今天決定加個把鉤子做上。利用鉤子更新遠端專案的關鍵是實現ssh無密碼登入。
svn倉庫所在伺服器(以下簡稱機器a) :6.111
專案所在伺服器(以下簡稱機器b):6.28
一、首先我們實現ssh無密碼登入(a->b)
1.在a機器上生成秘鑰對
[root@domin ~]# ssh-keygen -t rsa
一路enter下去,秘鑰對就可以成功生成啦。生成完的秘鑰對儲存/root/.ssh目錄中(因為我是root使用者)
[root@domin .ssh]# pwd
/root/.ssh
[root@domin .ssh]# ls
id_rsa id_rsa.pub
2.將id_rsa.pub複製為authorized_keys,並將authorized_keys檔案上傳到b機器的
[root@domin .ssh]# cp id_rsa.pub authorized_keys
[root@domin .ssh]# scp authorized_keys root@192.168.6.28:/root/.ssh
3.ssh登入b機器,第一次需要輸入密碼,以後就不在需要了,至此,無密碼登入就已經實現了
二、在b機器上建立更新svn的指令碼
1.建立指令碼檔案/shell/svnup.sh
[root@domin shell]# vim svnup.sh
#!/bin/bash
/usr/bin/svn update /var/www/projcet #projcet為專案檔案
[root@domin shell]# chmod 755 svnup.sh
三、建立鉤子
svn倉庫建立完後會有乙個hooks資料夾,該資料夾下面已經自帶了一些鉤子檔案,我們要用到的是post-commit
1.將post-commit.tmpl複製為post-commit
[root@101-server hooks]# cp post-commit.tmpl post-commit
2.注釋掉post-commit裡面的所有內容,並新增我們的更新命令
/usr/bin/ssh -l root 192.168.6.28 "/bin/bash /shell/svnup.sh"
四、總結
實現過程中有幾個需要注意的地方,1..ssh目錄和authorize_keys檔案的許可權,.ssh目錄的許可權是700,authorize_keys的許可權應該為644.
2.post-commit檔案和svnup.sh檔案的許可權,至少為755
python自動更新SVN
usr bin env python encoding utf 8 file svnupdate.py contact 512759438 qq.com author jian setting closeonend 0 不自動關閉對話方塊 closeonend 1 如果沒發生錯誤則自動關閉對話方塊 ...
SVN搭建以及自動更新
svn是subversion的簡稱,是乙個開放源 的版本控制系統.說得簡單一點svn就是用於多個人共同開發同乙個專案,共用資源的目的。一 yum安裝 1 安裝svn yum install subversion 或者yum y install subversion 不需要輸入y mkdir p da...
SVN搭建以及自動更新
svn搭建文件 一,svn說明 svn是subversion的簡稱,是乙個開放源 的版本控制系統,說得簡單一點svn就是用於多個人共同開發同乙個專案,公用資源的目的。二,svn搭建 一 yum安裝 1.安裝svn yum install subversion 或者yum y install subv...