Nagios plugin to check a monitored cron
This repository provide a way to monitor the execution of a cron.
To monitor it, you have to run it with the provider launcher run_monitored_cron by prefixing the command executed by crond.
Usage : run_monitored_cron [-n name] [-D /path/to/directory] -- [command and its args]
-n|--name Cron name (default: the name of the run command)
-D|--directory Path of directory where to store telltale files (default: /run)
-l|--log-file Log execution output to specified log file (optional)
-E|--do-not-report-errors Do not report execution errors in error file
-x Enable BASH debugging
-h|--help|help Show this message
Crontab example:
*/5 * * * * root /path/to/run_monitored_cron -- /path/to/monitored_cron [monitored cron args...]
This launcher will maintain three files named base on monitored cron basename:
- a status file : Empty file updated on each successfully execution (Default:
/run/[name].stat) - a PID file : Present only when the cron is running and contain the PID of the running process (Default:
/run/[name].pid) - an errors file : Present only when error(s) occurred in previous executions and contains details on this error(s) (Default:
/run/[name].err)
You will able to monitor the execution of this script using the provide check_monitored_cron script:
Usage: ./check_monitored_cron [-D files_path_format] -n [name]
-n [name] Specify the name of the monitored cron
-h Show this help message
-D [path] Specify the directory where run_monitored_cron store state files
(default: /run)
-w [minutes] Specify WARNING time in minutes for status file (default: 30)
-c [minutes] Specify CRITICAL time in minutes for status file (default: 120)
-W [minutes] Specify WARNING time in minutes for PID file (default: 5)
-C [minutes] Specify CRITICAL time in minutes for PID file (default: 10)
Installation
apt install awk git
git clone https://git.easter-eggs.org/brenard/check_monitored_cron.git /usr/local/src/check_monitored_cron
mkdir -p /usr/local/lib/nagios/plugins
ln -s /usr/local/src/check_monitored_cron/check_monitored_cron /usr/local/lib/nagios/plugins/
ln -s /usr/local/src/check_monitored_cron/run_monitored_cron /usr/local/bin/
Copyright
Copyright (c) 2023 Benjamin Renard
License
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.