因为项目初期,想简单点,大家提交svn之后,再上服务器拉取一遍代码,后来渐渐的人多了,发现这样很可能会造成一些安全隐患;
之前采取过很多办法:
1、利用netbeans+ftp的方式直接提交到测试(crtl+s就保存提交ftp)
2、用硬盘挂载的方式(不怎么稳定,因为自己的电脑总是关机网线、拔网线等情况,容易卡死挂载)
所以这次就想既然版本控制工具都有钩子的概念,那么就使用一次呗(以post-commit为例子)
当然我的方法可能很low,因为教程没看完
一、当同一台主机的时候,很简单在直接在svn的版本控制的文件下面找到hooks,然后里面vim post-commit里面可以编辑你想要的shell脚本,然后给一个755的权限就好了
二、跨服务器做免登陆,① cd /root/.ssh && ssh-keygen -t rsa 然后会在当前文件夹下id_rsa.pub重命名为authorized_keys,然后将这个文件copy到对方的服务器的/root/.ssh下,然后将文件给个700的权限;这样就实现了免登的效果;然后就和上面一样了,走shell脚本即可
/usr/bin/ssh -l root 114.xx.xx.xx "cd /var/www/html/xx && svn up && chown apache:apache ./* -R && chmod 777 ./* -R"