当前位置: 代码迷 >> CVS/SVN >> http模式更新svn
  详细解决方案

http模式更新svn

热度:9927   发布时间:2013-02-26 00:00:00.0
http方式更新svn
目的:希望能够通过浏览器对某个linux服务器做控制。

方法:

首先要安装ruby,最简单的是yum install ruby

然后编辑一个文件放到任意目录下或者/root下

使用ruby里的webrick,示例如下:
#!/usr/bin/env rubyrequire 'webrick'include WEBricks = HTTPServer.new(  :Port => 2005 #http监听端口)class HelloServlet < HTTPServlet::AbstractServlet  def do_GET(req,res)    #要http输出到浏览器    res.content_type='text/html; charset=UTF-8'       # 重定向输出是很重要的操作    filename='/home/svn.log'    command='/usr/local/svn/bin/svn checkout svn://221.222.222.222/loupa /loupa > ' + filename         system(command)   #这个例子是进行一个svn更新的操作,想要搞什么操作都放system里面    ss=''    File.open(filename,'r').each {|line|      ss = ss+ line+'<br>'    }      # system('rm -rf /err') # 甚至可以做这样的操作,可以放多个    # 以下是显示给操作者看的       res.body=%{      <html>        <head>          <title>web操作</title>        </head>        <body>         #{ss}        <br><br><br>        web操作完毕<br>        </body>      </html>    }  endends.mount('/', HelloServlet) #设定url,也可以是/svn等,客户端访问跟着变trap("INT"){s.shutdown}s.start


然后,以root身份启动程序,很重要,然后 /root/web.rb即可

一个小问题是就算把任务放后台,仍然会不停的出现信息到控制台。但是不影响使用。

浏览器访问此http服务,使用

http://ip地址:2005/

即可,确保端口没有被别的程序占用,

想要在服务端停止时,

ps aux|grep web.rb

然后

kill -KILL 那个进程号

即可
  相关解决方案