Checks per CRON

Ich habe oft das Problem, dass meine selbst geschriebenen Checks zu langsam ablaufen, was aber immer an den Tools der Hardwarehersteller liegt. Deshalb benutze ich dieses System um Checks per Cron, unabhängig von check_mk laufen zu lassen. Folgende neue Ordner werden im Ordner /usr/lib/check_mk_agent benötigt:

mkdir cron
mkdir cron/scripts
mkdir cron/scripts/plugins
mkdir cron/scripts/local
mkdir data
mkdir data/plugins
mkdir data/local

In den Ordner cron/scripts kommt nur das Script „cron.sh“ welches man dann im gewünschten Intervall, z.b. alle 5 Minuten, per Cron laufen lässt:

#!/bin/bash

# cron kennt nur volle Minuten - 10 Sekunden Offset aus der vollen Minute
sleep 10

SCRIPTS=/usr/lib/check_mk_agent/cron/scripts
OUTPUT=/usr/lib/check_mk_agent/data

for i in `ls -1 $SCRIPTS/plugins`
do
	$SCRIPTS/plugins/$i > $OUTPUT/plugins/$i
	mv $OUTPUT/plugins/$i $OUTPUT/plugins/cmk_$i
done

for i in `ls -1 $SCRIPTS/local`
do
	$SCRIPTS/local/$i > $OUTPUT/local/$i
	mv $OUTPUT/local/$i $OUTPUT/local/cmk_$i
done

# m h dom mon dow user  command
*/5 *  * * *	root    /usr/lib/check_mk_agent/cron/scripts/cron.sh

Die Ordner „cron/scripts/plugins“ und „cron/scripts/local“ enthalten dann die eigentlichen Checks die sonst in den Ordnern „plugins“ bzw. „local“ stehen würden. An stelle der eigentlichen Checks stehen dann in diesen beiden Ordnern nur folgende Scripte:

Ordner „plugins“:

#!/bin/bash
  
cat /usr/lib/check_mk_agent/data/plugins/cmk_*

Ordner „local“:

#!/bin/bash
  
cat /usr/lib/check_mk_agent/data/local/cmk_*