利用钩子更新远程项目的关键是实现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