⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 func_test.py

📁 syslog-ng日志服务器源码
💻 PY
字号:
#!/usr/bin/pythonimport os, sys, signal, traceback, timefrom socket import *class MessageSender:    def __init__(self, repeat=1000):        self.repeat = repeat            def sendMessages(self, messages):        self.initSender()        for msg in messages:            for counter in range(1, self.repeat):                self.sendMessage('%s %d %s' % (msg, counter, 'x' * 1500))class SocketSender(MessageSender):    def __init__(self, family, sock_name, dgram=0, send_by_bytes=0, terminate_seq='\n', repeat=1000):        MessageSender.__init__(self, repeat)        self.family = family        self.sock_name = sock_name        self.sock = None        self.dgram = dgram        self.send_by_bytes = send_by_bytes        self.terminate_seq = terminate_seq            def initSender(self):        if self.dgram:            self.sock = socket(self.family, SOCK_DGRAM)        else:            self.sock = socket(self.family, SOCK_STREAM)                self.sock.connect(self.sock_name)        def sendMessage(self, msg):        line = '%s%s' % (msg, self.terminate_seq)        if self.send_by_bytes:            for c in line:                self.sock.send(c)        else:            self.sock.send(line)            def readpidfile(pidfile):    f = open(pidfile, 'r')    pid = f.read()    f.close()    return int(pid.strip())messages = (    '<7>2004-09-07T10:43:21.156+01:00 bzorp prog: msg',)senders = (    SocketSender(AF_UNIX, 'log-dgram', dgram=1),    SocketSender(AF_UNIX, 'log-dgram', dgram=1, terminate_seq='\0'),    SocketSender(AF_UNIX, 'log-dgram', dgram=1, terminate_seq='\0\n'),    SocketSender(AF_UNIX, 'log-stream', dgram=0),    SocketSender(AF_UNIX, 'log-stream', dgram=0, send_by_bytes=1),    SocketSender(AF_INET, ('localhost', 2000), dgram=1),    SocketSender(AF_INET, ('localhost', 2000), dgram=1, terminate_seq='\0'),    SocketSender(AF_INET, ('localhost', 2000), dgram=1, terminate_seq='\0\n'),    SocketSender(AF_INET, ('localhost', 2000), dgram=0),    SocketSender(AF_INET, ('localhost', 2000), dgram=0, send_by_bytes=1),)conf = """source s_int { internal(); };source s_unix { unix-stream("log-stream"); unix-dgram("log-dgram");  };source s_inet { tcp(port(2000)); udp(port(2000)); };destination dst { file("test-output.log" template("$DATE $HOST $MSG\n")); };log { source(s_int); source(s_unix); source(s_inet); destination(dst); };"""f = open('test.conf', 'w')f.write(conf)f.close()try:  os.unlink('test-output.log')except OSError:  passrc = os.system('../../src/syslog-ng -f test.conf -p syslog-ng.pid')if rc != 0:    print "Error in syslog-ng startup"    success = 0else:    success = 1time.sleep(1)if success:    try:        for s in senders:            s.sendMessages(messages)        time.sleep(1)    finally:        try:            pid = readpidfile('syslog-ng.pid')            os.kill(pid, signal.SIGTERM)        except OSError, e:            print "Syslog-ng exited before SIGTERM... %s" % str(e)            success = 0sys.exit(not success)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -