XYMONGREP(1) | General Commands Manual | XYMONGREP(1) |
xymongrep - pick out lines in hosts.cfg
xymongrep --help
xymongrep --version
xymongrep [--noextras] [--test-untagged] [--web] [--net]
[--loadhostsfromxymond] TAG [TAG...]
xymongrep(1) is for use by extension scripts that need to pick out the entries in a hosts.cfg file that are relevant to the script.
The utility accepts test names as parameters, and will then parse the hosts.cfg file and print out the host entries that have at least one of the wanted tests specified. Tags may be given with a trailing asterisk '*', e.g. "xymongrep http*" is needed to find all http and https tags.
The xymongrep utility supports the use of "include" directives inside the hosts.cfg file, and will find matching tags in all included files.
If the DOWNTIME or SLA tags are used in the hosts.cfg(5) file, these are interpreted relative to the current time. xymongrep then outputs a "INSIDESLA" or "OUTSIDESLA" tag for easier use by scripts that want to check if the current time is inside or outside the expected uptime window.
If your hosts.cfg file looks like this
192.168.1.1 www.test.com # ftp telnet !oracle
192.168.1.2 db1.test.com # oracle
192.168.1.3 mail.test.com # smtp
and you have a custom Xymon extension script that performs the "oracle" test, then running "xymongrep oracle" would yield
192.168.1.1 www.test.com # !oracle
192.168.1.2 db1.test.com # oracle
so the script can quickly find the hosts that are of interest.
Note that the reverse-test modifier - "!oracle" - is included in the output; this also applies to the other test modifiers defined by Xymon (the dial-up and always-true modifiers).
If your extension scripts use more than one tag, just list all of the interesting tags on the command line.
xymongrep also supports the "NET:location" tag used by xymonnet, so if your script performs network checks then it will see only the hosts that are relevant for the test location that the script currently executes on.
To integrate xymongrep into an existing script, look for the line in the script that grep's in the $HOSTSCFG file. Typically it will look somewhat like this:
$GREP -i "^[0-9].*#.*TESTNAME" $HOSTSCFG | ... code to handle
test
Instead of the grep, we will use xymongrep. It then becomes
$XYMONHOME/bin/xymongrep TESTNAME | ... code to handle test
which is simpler, less error-prone and more efficient.
Version 4.3.30: 4 Sep 2019 | Xymon |