使用`logger`命令发送UDP数据包

Tad*_*eck 7 server python logging log syslog

我有几个不同的解决方案来运行自定义系统日志服务器(基于https://gist.github.com/marcelom/4218010)。

我面临的问题是以下命令不会向服务器发送 UDP 数据包:

logger -n 127.0.0.1 -P 514 "Test message"
Run Code Online (Sandbox Code Playgroud)

我是否正确发送了测试消息?

关于我做错了什么的任何想法?脚本显然应该可以工作,但我无法确认它们在测试期间是否工作。

编辑:我确认系统日志接收器确实正在接收使用 UDP 协议发送的消息。因此,我也澄清了删除这篇文章的问题。

Mat*_*asF 7

我失去了一些理智,试图弄清楚为什么我昨天不能跨不同的机器登录来测试我们的远程日志记录

事实证明,包含“logger”的 util-linux/bsdutils 核心包安装了 2.20.1 版,并且该版本默默地忽略了 -n 开关。这是我发现的:

  • 从 2.21 到 2.24 的所有较新版本的 logger 都可以构建并正常工作。
  • 版本 2.20.1 构建良好,但忽略了 -n 开关,就像安装的版本一样。
  • 从 12.04 到包括“trusty”的所有 Ubuntu 都包含 2.20.1 :(

解决方案:

以下位置获取最新的 util-linux:ftp://ftp.kernel.org/pub/linux/utils/util-linux/

解压、./configure、制作,并将二进制文件从 ./misc-utils/logger 复制到 /usr/local/bin/logger。

您可能需要刷新您的 shell,例如“source ~/.bashrc”,以使 /usr/local/bin 版本生效。确认新的记录器安装了“记录-V”,它应该不是“从util的Linux的2.20.1记录”多说。

  • 这里的错误和解决方法:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=684264 只需添加“-u /tmp/ignored”然后 -n 开始工作。 (3认同)

小智 6

netcat 的另一个解决方案:

echo -n "test message" | nc -4u -w1 <host> <udp port>