websocket技术
ajax每隔段时间去获取服务器日志?out了,试试用websocket方式吧
bottle框架,写了个websocket服务端websocket server,再用python subprocess获取远程服务器的日志信息,subprocess,就是用Popen调用shell的shell命令而已,这样可以获取到实时的日志了,然后再send到websocket serverwebsocket server的浏览器,就会实时展现出来了
A服务器是websocket服务端,B服务器是日志端
A服务器是我浏览器本机,websocket服务端也是这台机,IP是:192.168.2.222
B服务器是要远程查看日志的服务器,我这里用:192.168.2.224
A服务器的(Python2)
websocket servet的python代码:
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 from bottle import get, run 4 from bottle.ext.websocket import GeventWebSocketServer 5 from bottle.ext.websocket import websocket 6 users = set() # 连接进来的websocket客户端集合 7 @get('/websocket/', apply=[websocket]) 8 def chat(ws): 9 users.add(ws) 10 while True: 11 msg = ws.receive() # 接客户端的消息 12 if msg: 13 for u in users: 14 u.send(msg) # 发送信息给所有的客户端 15 else: 16 break 17 # 如果有客户端断开连接,则踢出users集合 18 users.remove(ws) 19 run(host='0.0.0.0', port=8000, server=GeventWebSocketServer)
websocket服务端除了用以上的方法外,还可以用这下面的方法实现:
1 2 3
4 5 10 11 12实时日志
13 15 39 40