[Xymon] xymon, xymon-rclient and md5sum checks

oliver ohemming at gmail.com
Tue Jun 9 21:24:42 CEST 2015


On Thu, Jun 4, 2015 at 10:10 PM, Jeremy Laidman
<jlaidman at rebel-it.com.au> wrote:
> No, it's not using "stat".  Instead, it's using a series of shell commands,
> and in some cases (such as for the "*time" and "group" lines) a bit of perl.
> If you're interested, you can check how it's all done in the
> send_logfetch_file() function (from line 323).  This function essentially
> creates a sequence of commands that get sent to the shell on the remote
> client.
>
> I have no idea why it's not working for Solaris.  But I can confirm that
> it's not working for my Solaris boxes also.  This means I can do some
> testing here and (I hope) come up with a fix.  Sorry I can't offer any more
> at this stage.

I think I see the problem.

Line 310:
echo "if [ \"$FILENAME\" -a -e \"$FILENAME\" ]; then"

If I construct a similar command on a linux box, I get this:
$ [ /etc/sudoers -a -e /etc/sudoers ] && echo hello
hello

but on Solaris, I get this:
$ [ /etc/sudoers -a -e /etc/sudoers ] && echo hello
test: argument expected

I guess you could drop the -e and it will still work for both
linux/solaris or add another 'if' statement.... something like this
(but I'm not sure if this is the best way:)

        if [ "$OSTYPE" = "sunos" ] || [ "$SCRIPTOS" = "sunos" ]; then
          echo "if [ \"$FILENAME\" -a \"$FILENAME\" ]; then"
        else
          echo "if [ \"$FILENAME\" -a -e \"$FILENAME\" ]; then"
        fi

Either way, it's working for me now using the 'if' method - but
Solaris and Linux is all I have.  If there's a better way to do it,
please let me know.



More information about the Xymon mailing list