3

I have a linux machine with ntpdate installed and it is working when i run it from my ssh terminal or from a shell script manually.

However , when i add the shell script to crontab i get the error

ntpdate: command not found

!/bin/bash

NTPSERVER=192.168.1.192
LOGPATH="/home/test/" ntpdate -q $NTPSERVER>$LOGPATH/tmp.txt
RETVAL=$?

if [ $RETVAL -ne 0 ] ; then
echo "Failure Unable to query NTP Server :">>$LOGPATH/ntpdebug.txt
date >>$LOGPATH/ntpdebug.txt
exit $RETVAL
fi

echo "Local Time: ">>$LOGPATH/ntpdebug.txt date >>$LOGPATH/ntpdebug.txt cat $LOGPATH/tmp.txt>>$LOGPATH/ntpdebug.txt

ntpdate $NTPSERVER
RETVAL1=$?

if [ $RETVAL1 -ne 0 ] ; then
echo "Failure Unable to connect NTP Server :">>$LOGPATH/ntpdebug.txt
date >>$LOGPATH/ntpdebug.txt
exit $RETVAL1
fi

echo "Synchronized" >>$LOGPATH/ntpdebug.txt

1 Answer 1

5

Use full path!

/usr/sbin/ntpdate $NTPSERVER

cron doesn't include any ~/.bashrc, ~/.zshrc, etc., so the $PATH maybe unset.

1
  • There is still folks comming here from google. So ntpdate is deprecated and changed with timedatectl. You can use sudo timedatectl set-ntp on
    – mandza
    Feb 11, 2020 at 12:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .