日志流工具

136 阅读1分钟

背景

因为上家公司mj运维经常手动帮研发拉日常,效率极低,因此写了一个socket传输日志流工具

代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-#

#-------------------------------------------------------------------------------
# Name:         client_send_str
# Description:  
# Author:       handa
#-------------------------------------------------------------------------------



### 客户端

import socket
import sys
import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
    reload(sys)
    sys.setdefaultencoding(defaultencoding)

client = socket.socket()
client.connect(('x.x.x.x', 38888))  # 设置连接的服务器的IP和端口


line = sys.stdin.readline()

while True:
    while line:
        line = sys.stdin.readline()
        print line
        client.send(line.encode('utf-8'))  # 设置编码为utf-8
        #client.send(line.encode())  # 设置编码为utf-8

client.close()



### 服务端

#!/usr/bin/env python
# -*- coding: utf-8 -*-#

#-------------------------------------------------------------------------------
# Name:         server_recv_str.py
# Description:  
# Author:       handa
#-------------------------------------------------------------------------------

# -*- coding: utf-8 -*-
import socket

server = socket.socket()
server.bind(('0.0.0.0', 38888))  # 将socket绑定到本机IP并且设定一个端口
server.listen(5)  # 设置可以监听5个连接

exit = ''
while True:
    con, addr = server.accept()  # 会一直等待,直到连接客户端成功
    print('连接到: ', addr)
    while con:
        msg = con.recv(1024).decode('utf-8','ignore')  # 接受数据并按照utf-8解码
        #msg = con.recv(1024).decode()  # 接受数据并按照utf-8解码
        #print('收到的数据是: ', msg)
        #print('收到的数据类型是: ', type(msg))
        print(msg)
        if msg == 'break':
            con.close()  # 关闭本次连接
            exit = 'break'
            break

    if exit == 'break':
        break
server.close()  # 关闭服务器