http方式更新svn

目的:希望能够通过浏览器对某个linux服务器做控制。

方法:

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

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

使用ruby里的webrick,示例如下:
#!/usr/bin/env ruby

require 'webrick'
include WEBrick

s = 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>
    }
  end
end
s.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 那个进程号

即可

你可能感兴趣的:(http)