Python syslog ng未运行脚本
我想使用syslog ng来接收netgear日志,并使用python脚本进程 但是syslog ng没有运行python脚本 syslog-ng.configPython syslog ng未运行脚本,python,syslog-ng,Python,Syslog Ng,我想使用syslog ng来接收netgear日志,并使用python脚本进程 但是syslog ng没有运行python脚本 syslog-ng.config @version:3.2 options { flush_lines (0); time_reopen (10); log_fifo_size (1000); long_hostnames (off); use_dns (no); use_fqdn (no); create_di
@version:3.2
options {
flush_lines (0);
time_reopen (10);
log_fifo_size (1000);
long_hostnames (off);
use_dns (no);
use_fqdn (no);
create_dirs (no);
keep_hostname (yes);
};
source s_sys {
udp(ip(0.0.0.0) port(514));
};
destination d_python{
program("/usr/local/bin/python /opt/syslog.py");
#program("/bin/echo 'haha' >> /tmp/test");
};
log { source(s_sys); destination(d_python);};
还有像这样的python脚本
#!/usr/local/bin/python
#coding:utf8
import os
import sys
import datetime
f = open('/var/log/pnet.log', 'a')
f.write('\nstart\n')
f.write('args\n')
f.write('%s\n' % sys.argv)
if not sys.stdin.isatty():
f.write('stdin\n')
f.write('%s\n' % date.date.now().isoformat() )
tty_read = sys.stdin.read()
f.write("'''\n")
f.write(tty_read)
f.write("\n'''\n")
f.write('end\n')
f.close()
脚本已经是777了
即使我更改了配置,使用“echo”直接导入文件,也没有写一个字
那么…为什么呢?这是一个愚蠢的问题,但你们有收到的日志吗?如果您使用简单的文件目标而不是程序,您是否收到日志?如果不是,则问题不在程序目标中 另外,尝试更改冲洗线(0);选择1以查看是否有帮助 问候,
Robert Fekete我可以向您展示我的代码以供参考: my
syslog ng.conf
:
source s_test{
file("/home/test/in.log" follow-freq(1) flags(no-parse));
};
destination d_test{
program ("/home/test/out.py" flush_lines(1) flags(no_multi_line));
};
log {
source(s_test);
destination(d_test);
flags(flow-control);
};
我的out.py
:
#!/usr/bin/env python
# encoding: utf-8
import sys
while True:
line = sys.stdin.readline()
file = open("/home/test/out_from_python.log","a")
file.write(line)
file.close()
当您键入echo“something”>/home/test/in.log
时,将有一个新的日志位于/home/test/out\u from\u python.log