svn利用hooks自动更新远程服务器上的项目
2016-04-24 15:06
513 查看
项目开发阶段往往需要频繁的提交代码,如果不加svn钩子的话,每次提交都要到项目目录下执行一下svn up,非常费事,所以今天决定加个把钩子做上。利用钩子更新远程项目的关键是实现ssh无密码登录。
svn仓库所在服务器(以下简称机器A) :6.111
项目所在服务器(以下简称机器B):6.28
一、首先我们实现ssh无密码登录(A->B)
1.在A机器上生成秘钥对
2.将id_rsa.pub复制为authorized_keys,并将authorized_keys文件上传到B机器的
3.ssh登录B机器,第一次需要输入密码,以后就不在需要了,至此,无密码登录就已经实现了
二、在B机器上创建更新svn的脚本
1.创建脚本文件/shell/svnup.sh
三、创建钩子
svn仓库创建完后会有一个hooks文件夹,该文件夹下面已经自带了一些钩子文件,我们要用到的是post-commit
1.将post-commit.tmpl复制为post-commit
四、总结
实现过程中有几个需要注意的地方,1..ssh目录和authorize_keys文件的权限,.ssh目录的权限是700,authorize_keys的权限应该为644.
2.post-commit文件和svnup.sh文件的权限,至少为755
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-commit2.注释掉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
相关文章推荐
- The profile weblogic-maven-plugin specified is not present in the configuration as specified in null
- init done opengl support available
- MySQL数据库介绍及基本操作
- 【mahapps.metro】WPF窗体关闭,提示用户是否退出对话框
- [HDU 5316] Magician (线段树+单点更新+区间询问+区间合并)
- 解密uiautomator-API之UiDevice实例化方法
- 字符串包含
- mysql 执行reset master 风险
- 线程同步与互斥--------信号量(semaphore)
- 在EA12.0中由E-R图,整理数据模型图
- Qt Creator和MinGW编译OpenCV
- 专题二 第十二道题
- hibernate HQL 语句详解
- Apache Maven 使用 profile 和 filtering 实现多种环境下的资源配置管理(属性过滤)
- Camera Parameters API (一)
- OpenCV实现SfM(三):多目三维重建
- HDU 1542 Atlantis(离散化+扫描线(求并面积)+线段树)
- jquery easyui datebox 时间控件默认显示当前日期的实现方法
- Jquery注意点
- c# winform笔记