diff options
author | Jan Wagner <waja@cyconet.org> | 2013-10-01 08:17:54 +0200 |
---|---|---|
committer | Jan Wagner <waja@cyconet.org> | 2014-07-29 14:23:17 +0200 |
commit | a941219b41ba15abb393ae3a1cbdef3d28025c09 (patch) | |
tree | f0450068853c930d228ff4840b9975cb88da693f /plugins/check_ntp_time.c | |
parent | fc2c099d58eeb32350a6b147db067d179d8debb6 (diff) | |
download | monitoring-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.c | 13 |
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); } |