aboutsummaryrefslogtreecommitdiff
path: root/plugins/check_ntp_time.c
diff options
context:
space:
mode:
authorGravatar Jan Wagner <waja@cyconet.org> 2013-10-01 08:17:54 +0200
committerGravatar Jan Wagner <waja@cyconet.org> 2014-07-29 14:23:17 +0200
commita941219b41ba15abb393ae3a1cbdef3d28025c09 (patch)
treef0450068853c930d228ff4840b9975cb88da693f /plugins/check_ntp_time.c
parentfc2c099d58eeb32350a6b147db067d179d8debb6 (diff)
downloadmonitoring-plugins-a941219b41ba15abb393ae3a1cbdef3d28025c09.tar.gz
check_ntp_time: adding offset option
Not sure if this is of use or not - we have a strange requirement to run certain servers 5 minutes fast. I've added a switch to the check_ntp_time to allow for this offset. Thanks to Patrick McAndrew.
Diffstat (limited to 'plugins/check_ntp_time.c')
-rw-r--r--plugins/check_ntp_time.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/plugins/check_ntp_time.c b/plugins/check_ntp_time.c
index 72dffbd8..d6cf4191 100644
--- a/plugins/check_ntp_time.c
+++ b/plugins/check_ntp_time.c
@@ -48,6 +48,7 @@ static int verbose=0;
static int quiet=0;
static char *owarn="60";
static char *ocrit="120";
+static int time_offset=0;
int process_arguments (int, char **);
thresholds *offset_thresholds = NULL;
@@ -400,7 +401,7 @@ double offset_request(const char *host, int *status){
gettimeofday(&recv_time, NULL);
DBG(print_ntp_message(&req[i]));
respnum=servers[i].num_responses++;
- servers[i].offset[respnum]=calc_offset(&req[i], &recv_time);
+ servers[i].offset[respnum]=calc_offset(&req[i], &recv_time)+time_offset;
if(verbose) {
printf("offset %.10g\n", servers[i].offset[respnum]);
}
@@ -455,6 +456,7 @@ int process_arguments(int argc, char **argv){
{"use-ipv4", no_argument, 0, '4'},
{"use-ipv6", no_argument, 0, '6'},
{"quiet", no_argument, 0, 'q'},
+ {"time-offset", optional_argument, 0, 'o'},
{"warning", required_argument, 0, 'w'},
{"critical", required_argument, 0, 'c'},
{"timeout", required_argument, 0, 't'},
@@ -468,7 +470,7 @@ int process_arguments(int argc, char **argv){
usage ("\n");
while (1) {
- c = getopt_long (argc, argv, "Vhv46qw:c:t:H:p:", longopts, &option);
+ c = getopt_long (argc, argv, "Vhv46qw:c:t:H:p:o:", longopts, &option);
if (c == -1 || c == EOF || c == 1)
break;
@@ -504,6 +506,9 @@ int process_arguments(int argc, char **argv){
case 't':
socket_timeout=atoi(optarg);
break;
+ case 'o':
+ time_offset=atoi(optarg);
+ break;
case '4':
address_family = AF_INET;
break;
@@ -616,6 +621,8 @@ void print_help(void){
printf (" %s\n", _("Offset to result in warning status (seconds)"));
printf (" %s\n", "-c, --critical=THRESHOLD");
printf (" %s\n", _("Offset to result in critical status (seconds)"));
+ printf (" %s\n", "-o, --time_offset=");
+ printf (" %s\n", _("Expected offset of the ntp server relative to local server (seconds)"));
printf (UT_CONN_TIMEOUT, DEFAULT_SOCKET_TIMEOUT);
printf (UT_VERBOSE);
@@ -642,6 +649,6 @@ void
print_usage(void)
{
printf ("%s\n", _("Usage:"));
- printf(" %s -H <host> [-4|-6] [-w <warn>] [-c <crit>] [-v verbose]\n", progname);
+ printf(" %s -H <host> [-4|-6] [-w <warn>] [-c <crit>] [-v verbose] [-o <time offset>]\n", progname);
}