Jeremy, So I thought about changing the output.. I compressed the spaces and then I put a _ in lieu of the spaces.
As you can see below, they both get mangled...
[davieb at xymonsvr ~]$ ~xymon/client/local/dateinfo dhcp-common,4.3.6,18_Jul_2020,en_US.UTF-8 [davieb at xymonsvr ~]$ ~xymon/server/bin/xymon localhost "clientlog xymonsvr section=local:dateinfo" [local:dateinfo] dhcp-common,4.3.6,Jul_18_17:44:26,en_US.UTF-8
[davieb at xymonsvr ~]$ ~xymon/client/local/dateinfo dhcp-common,4.3.6,18Jul2020,en_US.UTF-8 [davieb at xymonsvr ~]$ ~xymon/server/bin/xymon localhost "clientlog xymonsvr section=local:dateinfo" [local:dateinfo] dhcp-common,4.3.6,Jul1817:44:26,en_US.UTF-8
On Mon, Aug 3, 2020 at 10:25 PM David Boyer <davieb at gmail.com> wrote:
Jeremy, You read my mind! But, it didn't seem to help... :(
[davieb at xymonsvr ~]$ ~xymon/client/local/dateinfo dhcp-common,4.3.6,18 Jul 2020,en_US.UTF-8
[davieb at xymonsvr ~]$ ~xymon/server/bin/xymon localhost "clientlog xymonsvr section=local:dateinfo" [local:dateinfo] dhcp-common,4.3.6,Jul 18 17:44:26,en_US.UTF-8
[davieb at xymonsvr ~]$ cat ~xymon/client/local/dateinfo #!/bin/sh
OS=
uname -sRPM=dhcp-common LANG=en_US.UTF-8;export LANGif [ ${OS} = "Linux" ]; then VERSION=
rpm -q ${RPM} --qf "%{VERSION}\n"INSTALLED=rpm -q ${RPM} --qf "%{INSTALLTIME:date}\n"|awk {'print $2" "$3" "$4'}fiecho "${RPM},${VERSION},${INSTALLED},${LANG}"
Good thing I'm grey already... This is the kinda stuff that would turn me grey!
Dave
On Mon, Aug 3, 2020 at 9:21 PM Jeremy Laidman <jeremy at laidman.org> wrote:
Great to see that the problem has been identified.
I would recommend forcing LANG in your script to a known value, because that's the code that makes an assumption about the output of rpm.
J
On Tue, 4 Aug 2020 at 10:56, David Boyer <davieb at gmail.com> wrote:
Jeremy, If you notice, both iterations are being run from the xymonsvr. I've added the LANG to see if the two report it differently.
So, by hand it looks:
[davieb at xymonsvr ~]$ ~xymon/client/local/dateinfo dhcp-common,4.3.6,18 Jul 2020,en_US.UTF-8
Pulling the info out of xymon looks:
[davieb at xymonsvr ~]$ ~xymon/server/bin/xymon localhost "clientlog xymonsvr section=local:dateinfo" [local:dateinfo] dhcp-common,4.3.6,Jul 18 17:44:26,*C*
Humm, there does appear to be a difference! Checking the xymon user itself, it UTF-8. [xymon at xymonsvr ~]$ echo $LANG en_US.UTF-8
That appears to be the issue though, I set the LANG=C and ran the script by hand and get the same results when I pull it from xymon! [davieb at xymonsvr ~]$ LANG=C;export LANG [davieb at xymonsvr ~]$ ~xymon/client/local/dateinfo dhcp-common,4.3.6,Jul 18 17:44:26,C
Looking at the xymon.sh start script, it does not appear to set it anywhere! Guess I'll need to run that to ground in the morning.
Thanks for pointing me in the right direction!
Dave
On Mon, Aug 3, 2020 at 8:11 PM Jeremy Laidman <jeremy at laidman.org> wrote:
David
Update your script to, display the value of the LANG variable in addition to the RPM details (perhaps on a separate line), and see if the value differs between the script output (run from your shell) and the clientlog.
I suspect LANG is set in your shell differently from how it's set in the xymon user's shell. RPM (or probably glibc) uses LANG to format the date according to the environment's locale. I'm guessing your shell has LANG set to something like en_US, whereas the xymon user's LANG is set to something like C, or is not set at all.
Cheers Jeremy
On Tue, 4 Aug 2020 at 08:32, David Boyer <davieb at gmail.com> wrote:
Hi, I've got a strange date issue. I've written some local scripts to pad information onto the combo message. Here is the background:
- When you run the script by hand locally (take note of the date):
[davieb at xymonsvr ~]$ ~xymon/client/local/dateinfo dhcp-common,4.3.6,18 Jul 2020
- When I pull the information from xymon server:
[davieb at xymonsvr ~]$ ~xymon/server/bin/xymon localhost "clientlog xymonsvr section=local:dateinfo" [local:dateinfo] dhcp-common,4.3.6,Jul 18 17:44:26
Notice how the date field gets modified? I can't figure out why. The only thing I can think of is something within the xymon code, but I don't know why it would?
Here's the simple script:
[davieb at xymonsvr ~]$ cat ~xymon/client/local/dateinfo #!/bin/sh
OS=
uname -sRPM=dhcp-commonif [ ${OS} = "Linux" ]; then VERSION=
rpm -q ${RPM} --qf "%{VERSION}\n"INSTALLED=rpm -q ${RPM} --qf "%{INSTALLTIME:date}\n"|awk {'print $2" "$3" "$4'}fiecho "${RPM},${VERSION},${INSTALLED}"
Does anybody have any idea what is going on?
Thanks, Dave
Xymon mailing list Xymon at xymon.com http://lists.xymon.com/mailman/listinfo/xymon