SVN实时同步备库方法

前面一篇文章已经写了如何搭建svn服务器,虽然把代码保存到svn服务器管理,但是如果svn服务器出现异常也可能造成代码丢失,版本丢失等
为了保证代码安全性,备份是必须的,为了保证所有代码都不丢失,实时备份就很重要了

备份原理

svn本身提个了一些钩子,可以自定义脚本来完成一些功能,而为了完成实时备份就用到了post-commit
post-commit是代码commit后执行的钩子,而实时备份就利用这个钩子,在每次代码提交后执行这个钩子去同步到备库

创建备库

假设我已经在svnserver1上搭建了一个test库,现在我们在svnserver2上搭建一个backup库

svnadmin create backup
cd backup/hooks
mv pre-revprop-change.tmpl pre-revprop-change
sed -i '/exit 1/d' pre-revprop-change
chmod +x pre-revprop-change

上面省去了conf文件夹中的权限配置,具体方法可以看我前一篇文章《SVN安装笔记继续阅读

Nginx1.2.0升级笔记

昨天闲的蛋疼吧Nginx升级到了1.2.0,之前用的是1.0.14

1.0.14到1.2.0是一个大版本升级,配置文件有较大变化

写文章记录下碰到的问题以及解决办法

日志格式的定义不能放在每个server里了,必须写在http里

因此直接运行lnmp的升级脚本最后会报错,运行下面的sed脚本可以搞定

sed -i '/log_format.*/d;/.*http_user_agent.*/d;/\$status.*/d' /usr/local/nginx/conf/vhost/*.conf
sed -i 's/access_log  \/home\/wwwlogs\/\(.*\)\.log  .*/access_log  \/home\/wwwlogs\/\1\.log  nginx_log/' /usr/local/nginx/conf/vhost/*.conf
sed -i "\$i\log_format  nginx_log  '\$remote_addr - \$remote_user [\$time_local] \"\$request\" '" /usr/local/nginx/conf/nginx.conf 
sed -i "\$i\'\$status \$body_bytes_sent \"\$http_referer\" '" /usr/local/nginx/conf/nginx.conf
sed -i "\$i\'\"\$http_user_agent\" \$http_x_forwarded_for';" /usr/local/nginx/conf/nginx.conf

脚本是删除每个vhost里的日志格式定义,并且把日志格式名改为nginx_log,然后在http里定义一个nginx_log日志格式
继续阅读

SVN安装笔记

最近在SCM轮岗,svn是必备工具,虽然以前也经常用这东西,不过从没搭建过svn服务器
本文记录下安装过程
在自己的VPS上安装,由于没有apache,不喜欢它,另外我的破vps也经不起它折腾
所以本次安装SVN不涉及apache部分,由于没找到svn+nginx的方案,网上有的办法只是用nginx来做转发,最后还是要用apache
所以这次安装的SVN只能用svn://这种协议来访问,不能用http来访问了

下载源码包

wget http://labs.renren.com/apache-mirror/subversion/subversion-1.7.4.tar.gz
wget http://labs.renren.com/apache-mirror//apr/apr-1.4.6.tar.gz
wget http://labs.renren.com/apache-mirror//apr/apr-util-1.4.1.tar.gz
wget http://www.sqlite.org/sqlite-amalgamation-3071100.zip

我还安装了Berkeley DB,后来发现貌似没用到,这个东西没法直接wget,需要登录验证

我因为在公司,网络好,我下到本地,rz传到vps上的,你也可以到其他分发站点下载

安装Berkeley DB

tar xvf db-5.3.15.gz
cd db-5.3.15/build_unix
../dist/configure --prefix=/usr/local/berkeleydb
make && make install

继续阅读

如何获取GA的会话级CustomVar

前面我写了《Google Analytics之访客类别跟踪》,最近想折腾通过会话级自定义变量的改变来改变访客级

本来是想通过用户互动设置会话级的用户变量,然后根据会话级的用户变量改变,来判断访客级用户变量是否改变,从而形成一套会员数据机制

但实际操作起来却没那么简单,访客级的用户变量设置后我可以简单的获取到值,具体方法可以通过读取cookies的utmz,或者是使用_getVisitorCustomVar函数

可是会话级的用户变量却没法获取到,因为会话级和网页级变量不保存在cookies里,只是传回到Google Analytics里

虽然_getVisitorCustomVar这个函数是用来获取用户变量的,但是我实际测试这个函数也只能取到访客级的变量

我在header里定义一段函数,想根据页面访问数,来访次数、用户行为等来改变用户变量,不过由于没搞定,已经删了一大部分,剩下的就这么点 继续阅读

博客评论回访者跟踪

之前写了一大堆关于Google Analytics的文章,现在又想折腾回访者的跟踪

主要想了解评论者收到评论回复邮件后,回访博客的情况和行为

Analytics有跨域跟踪的功能,还可以传递cookies,但是在邮件里加入js,邮件提供商是否允许在邮件里运行js还是个问题,

折腾了半天想到一个简单的办法,不过只能确定是否通过提醒邮件回访了博客

方法很简单,就是改造评论回复提醒邮件的链接,现在的短链接服务都提供统计功能,我把邮件内的链接替换为bit.ly的短链

这个链接除了收信人能点击到,还有我自己到bit.ly的后台能点击,其他人是不知道这个链接的

而每封评论回复提醒邮件的地址由于评论不同,生成的短链不同,因此只要通过后台查看这些链接是否被点击过就能了解到评论者是否回访了
继续阅读

Google Analytics之访客类别跟踪

Google Analytics处理事件跟踪这种强大功能外,还能自定义用户变量

这个功能对于博客可能用处不是非常多,对于电商网站就有很好的用途,例如标记用户是浏览者还是购买者,或是用户是衣服购买者还是电器购买者

对于博客,你也可以置顶一篇调查文章,例如访客的性别,当访客在勾选性别时,就把这个信息push出去,标识一个用户变量

或者你也可以给每一个初来的访客标识为游客,当他进行了评论或者订阅之类的操作把这部分访客标识为会员,对于像我这样的不开放注册的博客也可以想办法建立一个会员数据

Analytics的用户变量主要分为3类,下面是简单的解释

“自定义变量”功能允许我们在三个层级上标记访问者:访客、会话、页面。

1. 访客层级标签
只要访问者不清除cookie,那么他现在和将来的访问都会被划到当前标记的这个访客之中。

2. 会话层级标签
只要访问者在本次访问中一直处于活跃状态,直到他离开本站或者会话过期,都会把他的访问绑定在当前的标签中。

3. 页面层级标签
当访问者与特定事件(如flash、vedio和Ajax等)交互时,就可以把他和页面级标签绑定。

继续阅读

 

无觅相关文章插件,快速提升流量