Client test script fails when run by xymon, works when run manually
list More Grey
Hello--
I have a xymon client test script that runs fine, as scheduled, returning
the appropriate results. I added an additional test to the script that
fails when the script is run on schedule, but which succeeds when the
script is run manually. The new test is a call to VirtualBox's VBoxManage
command, to list the existing VMs. When run by xymon, it appears that the
call to VBoxManage is not being sent all the parameters. If I change the
command to just "VBoxManage", the command returns the help message for
VBoxManage. If I change the command to "VBoxManage list", the command
returns the help message for the "list" command. But the command
"VBoxManage list vms" returns nothing. When the script is run manually or
within bbcmd, the call to "VBoxManage list vms" works as expected.
Below is a version of the script with just my new test (plus plenty of
debugging info):
#!/bin/sh
# wrapper for firing off the client tests
echo $(date) "!!! testing VBoxManage"
echo $(date) "!!! HOBBITCLIENTHOME=$HOBBITCLIENTHOME"
echo $(date) "!!! BBHOME=$BBHOME"
echo $(date) "!!! calling VBoxManage:"
/usr/lib/virtualbox/VBoxManage list vms
echo $(date) "!!! return code = $?"
echo $(date) "!!! after VBoxManage"
When this script runs as part of normal xymon operation (every 5 minutes,
in this case), I get the following output in my log file:
Tue May 17 23:04:48 UTC 2016 !!! testing VBoxManage
Tue May 17 23:04:48 UTC 2016 !!! HOBBITCLIENTHOME=/opt/mon/hobbit/client
Tue May 17 23:04:48 UTC 2016 !!! BBHOME=/opt/mon/hobbit/client
Tue May 17 23:04:48 UTC 2016 !!! calling VBoxManage:
Tue May 17 23:04:48 UTC 2016 !!! return code = 0
Tue May 17 23:04:48 UTC 2016 !!! after VBoxManage
But when I run the script directly from the tests.d directory, or when I
run it using bbcmd, I get the following output:
2016-05-17 23:08:46 Using default environment file
/opt/mon/hobbit/client/etc/hobbitclient.cfg
Tue May 17 23:08:46 UTC 2016 !!! testing VBoxManage
Tue May 17 23:08:46 UTC 2016 !!! HOBBITCLIENTHOME=/opt/mon/hobbit/client
Tue May 17 23:08:46 UTC 2016 !!! BBHOME=/opt/mon/hobbit/client
Tue May 17 23:08:46 UTC 2016 !!! calling VBoxManage:
"VM-00" {f428809a-e08e-2164-a52a-34405d323b18}
"VM-01" {8d9d188f-3f80-4fe4-99b2-7b740b3bd841}
[ output omitted ]
"VM-11" {77145415-2130-4280-84da-1b06e78a110f}
"VM-12" {b91ae190-74a9-a4e7-9643-142fab9b29a9}
Tue May 17 23:08:47 UTC 2016 !!! return code = 0
Tue May 17 23:08:47 UTC 2016 !!! after VBoxManage
I tried moving the VBoxManage command to a separate script and calling the
script instead of the command; same behavior. I tried running the
VBoxManage command in a subshell within the script; same behavior. Relying
on the environment PATH or specifying the full path of the VBoxManage
executable made no difference. If this were a permission problem, why would
VBoxManage run at all (in the cases where it returns a help message)?
What am I missing here?
Thanks for any suggestions!
list Jeremy Laidman
A few ideas: Su to the xymon user first, then run bbcmd. Run the command "env > /to/env" in the script and compare the file between xymon running and you running. Add "set -x" before the vboxmanage command and "set +x" after. Cheers Jeremy
▸
On Wed, 18 May 2016, 14:31 More Grey <user-e452d2df9470@xymon.invalid> wrote:
Hello--
I have a xymon client test script that runs fine, as scheduled, returning
the appropriate results. I added an additional test to the script that
fails when the script is run on schedule, but which succeeds when the
script is run manually. The new test is a call to VirtualBox's VBoxManage
command, to list the existing VMs. When run by xymon, it appears that the
call to VBoxManage is not being sent all the parameters. If I change the
command to just "VBoxManage", the command returns the help message for
VBoxManage. If I change the command to "VBoxManage list", the command
returns the help message for the "list" command. But the command
"VBoxManage list vms" returns nothing. When the script is run manually or
within bbcmd, the call to "VBoxManage list vms" works as expected.
Below is a version of the script with just my new test (plus plenty of
debugging info):
#!/bin/sh
# wrapper for firing off the client tests
echo $(date) "!!! testing VBoxManage"
echo $(date) "!!! HOBBITCLIENTHOME=$HOBBITCLIENTHOME"
echo $(date) "!!! BBHOME=$BBHOME"
echo $(date) "!!! calling VBoxManage:"
/usr/lib/virtualbox/VBoxManage list vms
echo $(date) "!!! return code = $?"
echo $(date) "!!! after VBoxManage"
When this script runs as part of normal xymon operation (every 5 minutes,
in this case), I get the following output in my log file:
Tue May 17 23:04:48 UTC 2016 !!! testing VBoxManage
Tue May 17 23:04:48 UTC 2016 !!! HOBBITCLIENTHOME=/opt/mon/hobbit/client
Tue May 17 23:04:48 UTC 2016 !!! BBHOME=/opt/mon/hobbit/client
Tue May 17 23:04:48 UTC 2016 !!! calling VBoxManage:
Tue May 17 23:04:48 UTC 2016 !!! return code = 0
Tue May 17 23:04:48 UTC 2016 !!! after VBoxManage
But when I run the script directly from the tests.d directory, or when I
run it using bbcmd, I get the following output:
2016-05-17 23:08:46 Using default environment file
/opt/mon/hobbit/client/etc/hobbitclient.cfg
Tue May 17 23:08:46 UTC 2016 !!! testing VBoxManage
Tue May 17 23:08:46 UTC 2016 !!! HOBBITCLIENTHOME=/opt/mon/hobbit/client
Tue May 17 23:08:46 UTC 2016 !!! BBHOME=/opt/mon/hobbit/client
Tue May 17 23:08:46 UTC 2016 !!! calling VBoxManage:
"VM-00" {f428809a-e08e-2164-a52a-34405d323b18}
"VM-01" {8d9d188f-3f80-4fe4-99b2-7b740b3bd841}
[ output omitted ]
"VM-11" {77145415-2130-4280-84da-1b06e78a110f}
"VM-12" {b91ae190-74a9-a4e7-9643-142fab9b29a9}
Tue May 17 23:08:47 UTC 2016 !!! return code = 0
Tue May 17 23:08:47 UTC 2016 !!! after VBoxManage
I tried moving the VBoxManage command to a separate script and calling the
script instead of the command; same behavior. I tried running the
VBoxManage command in a subshell within the script; same behavior. Relying
on the environment PATH or specifying the full path of the VBoxManage
executable made no difference. If this were a permission problem, why would
VBoxManage run at all (in the cases where it returns a help message)?
What am I missing here?
Thanks for any suggestions!
list Japheth Cleaver
Another possibility here is that there's a distinction between the client and server environments that's causing it to not properly report in "to itself." When running bbcmd, can you use bbcmd --env=/path/to/hobbitserver.cfg and --env=/path/to/hobbitclient.cfg and see if there's a difference? -jc
▸
On Wed, May 18, 2016 2:19 pm, Jeremy Laidman wrote:A few ideas: Su to the xymon user first, then run bbcmd. Run the command "env > /to/env" in the script and compare the file between xymon running and you running. Add "set -x" before the vboxmanage command and "set +x" after. Cheers Jeremy On Wed, 18 May 2016, 14:31 More Grey <user-e452d2df9470@xymon.invalid> wrote:Hello-- I have a xymon client test script that runs fine, as scheduled, returning the appropriate results. I added an additional test to the script that fails when the script is run on schedule, but which succeeds when the script is run manually. The new test is a call to VirtualBox's VBoxManage command, to list the existing VMs. When run by xymon, it appears that the call to VBoxManage is not being sent all the parameters. If I change the command to just "VBoxManage", the command returns the help message for VBoxManage. If I change the command to "VBoxManage list", the command returns the help message for the "list" command. But the command "VBoxManage list vms" returns nothing. When the script is run manually or within bbcmd, the call to "VBoxManage list vms" works as expected. Below is a version of the script with just my new test (plus plenty of debugging info): #!/bin/sh # wrapper for firing off the client tests echo $(date) "!!! testing VBoxManage" echo $(date) "!!! HOBBITCLIENTHOME=$HOBBITCLIENTHOME" echo $(date) "!!! BBHOME=$BBHOME" echo $(date) "!!! calling VBoxManage:" /usr/lib/virtualbox/VBoxManage list vms echo $(date) "!!! return code = $?" echo $(date) "!!! after VBoxManage" When this script runs as part of normal xymon operation (every 5 minutes, in this case), I get the following output in my log file: Tue May 17 23:04:48 UTC 2016 !!! testing VBoxManage Tue May 17 23:04:48 UTC 2016 !!! HOBBITCLIENTHOME=/opt/mon/hobbit/client Tue May 17 23:04:48 UTC 2016 !!! BBHOME=/opt/mon/hobbit/client Tue May 17 23:04:48 UTC 2016 !!! calling VBoxManage: Tue May 17 23:04:48 UTC 2016 !!! return code = 0 Tue May 17 23:04:48 UTC 2016 !!! after VBoxManage But when I run the script directly from the tests.d directory, or when I run it using bbcmd, I get the following output: 2016-05-17 23:08:46 Using default environment file /opt/mon/hobbit/client/etc/hobbitclient.cfg Tue May 17 23:08:46 UTC 2016 !!! testing VBoxManage Tue May 17 23:08:46 UTC 2016 !!! HOBBITCLIENTHOME=/opt/mon/hobbit/client Tue May 17 23:08:46 UTC 2016 !!! BBHOME=/opt/mon/hobbit/client Tue May 17 23:08:46 UTC 2016 !!! calling VBoxManage: "VM-00" {f428809a-e08e-2164-a52a-34405d323b18} "VM-01" {8d9d188f-3f80-4fe4-99b2-7b740b3bd841} [ output omitted ] "VM-11" {77145415-2130-4280-84da-1b06e78a110f} "VM-12" {b91ae190-74a9-a4e7-9643-142fab9b29a9} Tue May 17 23:08:47 UTC 2016 !!! return code = 0 Tue May 17 23:08:47 UTC 2016 !!! after VBoxManage I tried moving the VBoxManage command to a separate script and calling the script instead of the command; same behavior. I tried running the VBoxManage command in a subshell within the script; same behavior. Relying on the environment PATH or specifying the full path of the VBoxManage executable made no difference. If this were a permission problem, why would VBoxManage run at all (in the cases where it returns a help message)? What am I missing here? Thanks for any suggestions!