#!/usr/bin/perl -w

use POSIX;
use strict;

$ENV{'PATH'}='/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin';
$ENV{'BASH_ENV'}=''; 
$ENV{'ENV'}='';
my $PROGNAME = "check_ntp_offset";
my $chronyc = '/usr/bin/chronyc tracking';
my $ntp_offset = 0;

if (! open (CHRONYC, "$chronyc 2>&1 | ")) {
	die "ERROR: $chronyc returned an error\n";
}

my @lines = reverse <CHRONYC>;
close(CHRONYC);

if ( $? ) {
	die "CRITICAL: Error code ".($?>>8)." returned from $chronyc",$/;
}

## shut off the alarm


foreach my $line (@lines) {
	if ($line =~ /^Last offset *: ([-+]?[0-9]*\.?[0-9]+) seconds$/) {
		$ntp_offset = $1;
	}
}

if (!$ntp_offset) {
        die "Couldn't match $chronyc output\n";
}

print "$ntp_offset";


