Skip to content

Instantly share code, notes, and snippets.

@Grauwolf

Grauwolf/mrped

Forked from sts/mrped
Last active Feb 16, 2021
Embed
What would you like to do?
#!/usr/bin/env zsh
# MK's Remote Plugin Executor NG ;-)
#
# Workaround for check_mks inability to use scripts from a mrpe.d directory
# http://lists.mathias-kettner.de/pipermail/checkmk-en/2013-February/008646.html
#
# Make sure mrpe.cfg doesn't exist, or you will end up with two <<<mrpe>>>
# output sections.
#
set -o pipefail
if [[ -e /etc/mrpe.conf ]]
then
echo "mrpe.conf should not exist when running mrped"
exit 1
fi
if [ "$(ls -A /etc/check_mk/mrpe.d)" ] ; then
echo '<<<mrpe>>>'
grep -rhEv '^[[:space:]]*($|#)' "/etc/check_mk/mrpe.d" |
while read descr cmdline
do
(
PLUGIN=${cmdline%% *}
OUTPUT=$(eval "$cmdline" | tr \\n \\1)
echo -n "(${PLUGIN##*/}) $descr $? $OUTPUT"
)&
pids=(${pids[@]} $!)
done
for j in ${pids[@]}; do
wait $j &> /dev/null
done
fi
@Grauwolf

This comment has been minimized.

Copy link
Owner Author

@Grauwolf Grauwolf commented Jan 9, 2014

Should probably do this with GNU Parallel instead.

@sts

This comment has been minimized.

Copy link

@sts sts commented Jan 31, 2014

Paralysed! :-) Thanks Farhad!

Downside: Currently its a drop in replacement ; GNU Parallel isn't installed on all systems and adds an additional dependency.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment