svn利用hooks自動更新遠端伺服器上的專案

2021-07-11 09:54:24 字數 1572 閱讀 4048

專案開發階段往往需要頻繁的提交**,如果不加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 [email protected]:/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...