gpt4 book ai didi

linux - 通过 omprog(syslog 模块)将命令行参数传递给 shell 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:12 34 4
gpt4 key购买 nike

通过 rsyslog 模块 omprog 将系统日志消息作为命令行参数传递给 shell 脚本时遇到了麻烦。

我的/etc/rsyslog.conf:

module(load="omprog")
if $syslogtag contains 'user'
then action(type="omprog" binary="/usr/bin/test")

我的/usr/bin/测试:

#!/bin/sh
printf "\n$(date): $1" >> /home/user/sink

在运行中

logger qqq

我在/var/log/messages 中得到“qqq”,在/home/user/sink 中得到当前时间戳。
运行时

/usr/bin/test some_message

我进入/home/user/sink 当前时间戳以及“some_message”。但是一旦我将/etc/rsyslog.conf 中的操作字符串修改为
要么

then action(type="omprog" binary="/usr/bin/test some_message")

then action(type="omprog" binary="/usr/bin/test \"$msg\"")

我在系统日志中得到了记录器参数,但在/home/user/sink 中什么也没有。已经在这个问题上停留了一整天,非常感谢任何帮助。

最佳答案

有关无法动态生成的操作参数的更多信息 -- https://github.com/rsyslog/rsyslog/issues/1149

--

rgerhards commented on Sep 21, 2016

The key problem is: what shall the action do if a parameter changes? e.g. shut
down existing connection and create a new one? If so, shall it really do this
if parameters frequently change?

IMHO to handle this decently, the plugin itself must handle these kinds of
dynamic properties and act accordingly. So there is no generic solution possible.

关于linux - 通过 omprog(syslog 模块)将命令行参数传递给 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34137616/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com