5

01-2015

虽然是用python实现的,其实可以是任何服务端脚本。svn的钩子功能非常的好用,git也是可以实现钩子功能,只不过因为其实分布式的特征,我们如果想让某个服务器更新提交代码,我们通过远程库通知目标服务器,目标服务器接到通知,执行git pull即可。

第一种实现

这种方式是使用中间文件,两种脚本实现的

1、首先,一般的远程版本库,我使用的github,都是有个webhooks功能,github就在版本库的设置选项中,他可以设置一个Payload URL,这里可以根据自己的需要,选择,填写自己的通知地址,我是在各版本库push的时候执行通知,通知自己的一个url,这个url是用php写的。

代码:

这里我写的很简单,接收通知,但是我只是让git提交备注填写update的时候,去写入中间文件,这样就可以自己控制web的更新,

2、python脚本:

这个脚本就是监控这个中间脚本,当有更新的时候,执行git pull操作,并通知我

原理是非常简单的,这个脚本再加入上篇文章中写的那个进程监控脚本中,即可。

第二种实现:

直接使用web.py,python做web服务器,直接提供对应地址即可

代码:

 

这样,我本地写了markdown文档等,甚至修改代码,我就可以直接本地修改提交,就可以自动更新我的服务器web站点了。

以后我的文章就尽量在markdown文档写了,大家多多支持奥。

程序本天成,妙手偶得之!我们只是代码的搬运工!

转载请注明:http://www.521php.com/archives/1883/

目前有4 条留言

  1. 2015年01月06日 下午 3:36 优壹佰   |  引用  |  #1     

    找这篇文章很久了,技术帖,顶。感谢博主无私分享!大家支持起来

  2. 2015年01月27日 下午 12:51 点滴生活   |  引用  |  #2     

    支持一下

  3. 2015年03月04日 下午 4:30 威客资讯   |  引用  |  #3     

    赶脚楼主的php技术很好啊。

发表评论

昵称:

网址:

eg.博客主题调用的是Gravatar头像,你可以通过邮箱注册获得头像.
/ 快捷键:Ctrl+Enter