/ print "Checking to be sure the Network Time Protocol is running properly.\n"; print "For more information on ntpd please see http://www.ntp.org/\n"; my $NTPD; my $checkcmd = 'ps -ef |grep ntp |grep -v grep'; my $startntpcmd; my $is_running; if (('' eq 'fedora15') || ('' eq 'fedora16') || ('' eq 'fedora17') || ('' eq 'fedora18') || ('' eq 'fedora19') || ('' eq 'fedora20')) { $NTPD = 'ntpd'; $startntpcmd = 'systemctl start ntpd.service'; if (!-e '/usr/sbin/ntpd') { print "ntp is not installed.\n"; exit; } } else { if (-e "/etc/init.d/ntpd") { $NTPD = "ntpd"; } elsif (-e "/etc/init.d/xntpd") { $NTPD = "xntpd"; } elsif (-e "/etc/init.d/ntp") { $NTPD = "ntp"; } else { print "ntp is not installed.\n"; exit; } $startntpcnd = "/etc/init.d/$NTPD start"; } if (open(PIPE,'-|',$checkcmd)) { $is_running = <PIPE>; chomp($is_running); close(PIPE); if (!$is_running) { print "WARNING: ntp is installed but is not currently running.\nPlease verify the configuration of ntp in /etc/ntp.conf and /etc/ntp/step-tickers\nStart ntp by executing\n $startntpcmd\n"; } } else { print "Could not determine ntp status.\n"; } # chkconfig barfs to stderr if the target isn't set up right. my $checking_bin; my $restartchk; if ('' eq 'debian5' || '' eq 'debian6' || '' eq 'ubuntu6' || '' eq 'ubuntu8' || '' eq 'ubuntu10' || '' eq 'ubuntu12' '' eq 'ubuntu14') { $checking_bin = '/usr/sbin/sysv-rc-conf'; } else { $checking_bin = '/sbin/chkconfig'; } if (('' eq 'fedora15') || ('' eq 'fedora16') || ('' eq 'fedora17') || ('' eq 'fedora18') || ('' eq 'fedora19') || ('' eq 'fedora20')) { if (!-l "/etc/systemd/system/multi-user.target.wants/ntpd.service") { print "**** WARNING: ntpd is not configured to run at boot. To correct this run:\nsystemctl enable ntpd.service\n"; } exit; } else { $restartchk = `$checking_bin --list $NTPD 2>/dev/null`; if ($restartchk eq '') { print "**** WARNING: ntpd is either not installed or not configured to run at boot.\n"; exit; } if ($restartchk =~ /^error reading information on service / || $restartchk !~ /\d:(on|off)/) { print "**** WARNING: Unable to check status $NTPD with $checking_bin.\n"; exit; } if ($restartchk !~ /\s3:on/) { print "**** WARNING: ntpd is not set to start at runlevel 3. To correct this run:\n$checking_bin --level 345 $NTPD on\n"; exit; } if ($restartchk !~ /\s5:on/) { print "**** WARNING: ntpd is not set to start at runlevel 5. To correct this run:\n$checking_bin --level 345 $NTPD on\n"; exit; } }