svn多臺服務器添加項目同步更新功能

利用鉤子更新遠程項目的關鍵是實現ssh無密碼登陸。 shell

1、ssh無密碼登陸
1.在A機器上生成祕鑰對
[root@domin ~]# ssh-keygen -t rsa
生成完的祕鑰對保存/用戶主目錄/.ssh目錄中vim

[root@domin .ssh]# pwd  
/root/.ssh  
[root@domin .ssh]# ls  
id_rsa  id_rsa.pub

2.將id_rsa.pub複製爲authorized_keys,並將authorized_keys文件上傳到B機器的bash

[root@domin .ssh]# cp id_rsa.pub authorized_keys  
[root@domin .ssh]# scp authorized_keys root@192.168.6.28:/root/.ssh

2.1 第二步還能夠有另一種傳輸方式dom

[root@domin .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub dss@10.164.194.42

注:遠程機器的.ssh目錄須要700權限,authorized_keys文件須要600權限
3.ssh登陸B機器,第一次須要輸入密碼,之後就不在須要了,至此,無密碼登陸就已經實現了
2、在B機器上建立更新svn的腳本
1.建立腳本文件/shell/svnup.shssh

[root@domin shell]# vim svnup.sh  
#!/bin/bash  
/usr/bin/svn update /var/www/projcet #projcet爲項目文件

[root@domin shell]# chmod 755 svnup.sh svn

3、建立鉤子
svn倉庫建立完後會有一個hooks文件夾,該文件夾下面已經自帶了一些鉤子文件,咱們要用到的是post-commit
1.將post-commit.tmpl複製爲post-commitpost

[root@101-server hooks]# cp post-commit.tmpl post-commit

2.註釋掉post-commit裏面的全部內容,並添加咱們的更新命令code

/usr/bin/ssh -l root 192.168.6.28 "/bin/bash /shell/svnup.sh"

4、總結server

  1. .ssh目錄和authorize_keys文件的權限,.ssh目錄的權限是700,authorize_keys的權限應該爲644.
  2. post-commit文件和svnup.sh文件的權限,至少爲755
相關文章
相關標籤/搜索