Sending UDP packets with `logger` command

59,515

Solution 1

An other solution with netcat :

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

Solution 2

I lost some sanity trying to figure out why I couldn't log across different machines to test our remote logging yesterday

It turns out the util-linux/bsdutils core package which contains "logger", has version 2.20.1 installed and that version silently ignores the -n switch. This is what I found out:

  • All newer versions of logger from 2.21 to 2.24 build and work fine.
  • Version 2.20.1 builds fine but ignores the -n switch just like the installed version.
  • All Ubuntu from 12.04 up to including "trusty" all contain 2.20.1 :(

SOLUTION:

Get the latest util-linux from: ftp://ftp.kernel.org/pub/linux/utils/util-linux/

Unpack, ./configure, make, and copy the binary from ./misc-utils/logger to /usr/local/bin/logger.

You may have to refresh your shell such as "source ~/.bashrc" for the /usr/local/bin version to bite. Confirm the new logger is installed with "logger -V" where it should NOT say "logger from util-linux 2.20.1" anymore.

Share:
59,515

Related videos on Youtube

Tadeck
Author by

Tadeck

Updated on September 18, 2022

Comments

  • Tadeck
    Tadeck over 1 year

    I have couple different solutions for running custom syslog server (based on https://gist.github.com/marcelom/4218010).

    The problem I am facing is that the following command does not send UDP packets to the server:

    logger -n 127.0.0.1 -P 514 "Test message"
    

    Do I properly send a test message?

    Any ideas on what I am doing wrong? The scripts apparently should work, but I am unable to confirm they work during tests.

    EDIT: I confirmed that syslog receiver is indeed receiving messages sent with UDP protocol. Thus I also clarified the question removing this piece.

  • MattiasF
    MattiasF over 10 years
    Bug and workaround here: bugs.debian.org/cgi-bin/bugreport.cgi?bug=684264 just add "-u /tmp/ignored" and -n starts working.