Keeping your System clock current, automatically via Network Time Protocol (NTP)

NTP, the Network Time Protocol, is used to keep computer clocks accurate over the Internet, or by following an accurate hardware receiver which interprets GPS, DCF-77, NIST or similar time signals.

ntpdate is a simple NTP client which allows a system’s clock to be set to match the time obtained by communicating with one or more servers.

ntpdate is optional (but recommended) if you’re running an NTP server, because initially setting the system clock to an almost-correct time will help the NTP server synchronize faster.

The ntpdate client by itself is useful for occasionally setting the time on machines that are not on the net full-time, such as laptops.

Install ntp client in Debian

#apt-get install ntpdate

Install ntp client in Ubuntu

sudo apt-get install ntpdate

ntpdate will automatically run while bboting your system. Ubuntu stores script at /etc/network/if-up.d/ntpdate location.

If you wish to just run script again just type command

sudo /etc/network/if-up.d/ntpdate

sudo ntpdate

If you want to use you own ntp servers you need to edit the /etc/default/ntpdate file using the following command

sudo vi /etc/default/ntpdate

File looks like below

# servers to check. (Separate multiple servers with spaces.)
# additional options for ntpdate

If you wan to use your own NTP server enter the list of NTP servers under NTPSERVERS

To avoid stepping the clock you must run ntpdate every 1 or 2 hours using cronjob

crontab -e


@hourly /etc/network/if-up.d/ntpdate

Save and close the file.

You can also use the following script to run every hour from your cronjob


/usr/sbin/ntpdate -s

/sbin/hwclock --adjust

/sbin/hwclock --systohc

Sponsored Link

One thought on “Keeping your System clock current, automatically via Network Time Protocol (NTP)

  1. Actually, I guess you shouldn’t touch /etc/default/ntpdate. Instead you should create the file /etc/ntp.conf with a line such as:


    PS:For pedantary all the way, you should also correct you shebang. It should be #!/usr/bin/env bash so it uses the default bash.

Leave a comment

Your email address will not be published. Required fields are marked *