This page describes methods for keeping your computer's time accurate. This is useful for servers, but
is not necessary (or desirable) for desktop machines.
NTP is a TCP/IP protocol for synchronising time over a network. Basically a client requests the
current time from a server, and uses it to set its own clock.
Behind this simple description, there is a lot of complexity - there are tiers of NTP servers, with
the tier one NTP servers connected to atomic clocks (often via GPS), and tier two and three servers
spreading the load of actually handling requests across the Internet. Also the client software is a lot
more complex than you might think - it has to factor out communication delays, and adjust the time in
a way that does not upset all the other processes that run on the server. But luckily all that complexity
is hidden from you!
Ubuntu has two ways of automatically setting your time: ntpdate and ntpd.
ntpdate
Ubuntu comes with ntpdate as standard, and will run it once at boot time to set up your time according
to Ubuntu's NTP server. However, a server's clock is likely to drift considerably between reboots, so
it makes sense to correct the time occasionally. The easiest way to do this is to get cron to run ntpdate
every day. With your favorite editor, as root, create a file /etc/cron.daily/ntpdate containing:
ntpdate ntp.ubuntu.com
The file /etc/cron.daily/ntpdate must also be executable.
sudo chmod 755 /etc/cron.daily/ntpdate
ntpd
ntpdate is a bit of a blunt instrument - it can only adjust the time once a day, in one big correction.
The ntp daemon ntpd is far more subtle. It calculntpdate ntp.ubuntu.com pool.ntp.org
And for ntpd edit /etc/ntp.conf to include additional server lines:
server ntp.ubuntu.com
server pool.ntp.org
You may notice pool.ntp.org in the examples above. This is a really good idea which uses round-
robin DNS to return an NTP server from a pool, spreading the load between several different servers.
Even better, they have pools for different regions - for instance, if you are in New Zealand, so you
could use nz.pool.ntp.org instead of pool.ntp.org . Look at http://www.pool.ntp.org/ for more
details.
You can also Google for NTP servers in your region, and add these to your configuration. To test that
a server works, just type sudo ntpdate ntp.server.name and see what happens.
ates the drift of your system clock and continuously
adjusts it, so there are no large corrections that could lead to inconsistent logs for instance. The cost is
a little processing power and memory, but for a modern server this is negligible.
To set up ntpd:
sudo apt-get install ntp
Changing Time Servers
In both cases above, your system will use Ubuntu's NTP server at ntp.ubuntu.com by default. This is
OK, but you might want to use several servers to increase accuracy and resilience, and you may want
to use time servers that are geographically closer to you. to do this for ntpdate, change the contents of
/etc/cron.daily/ntpdate to:
is not necessary (or desirable) for desktop machines.
NTP is a TCP/IP protocol for synchronising time over a network. Basically a client requests the
current time from a server, and uses it to set its own clock.
Behind this simple description, there is a lot of complexity - there are tiers of NTP servers, with
the tier one NTP servers connected to atomic clocks (often via GPS), and tier two and three servers
spreading the load of actually handling requests across the Internet. Also the client software is a lot
more complex than you might think - it has to factor out communication delays, and adjust the time in
a way that does not upset all the other processes that run on the server. But luckily all that complexity
is hidden from you!
Ubuntu has two ways of automatically setting your time: ntpdate and ntpd.
ntpdate
Ubuntu comes with ntpdate as standard, and will run it once at boot time to set up your time according
to Ubuntu's NTP server. However, a server's clock is likely to drift considerably between reboots, so
it makes sense to correct the time occasionally. The easiest way to do this is to get cron to run ntpdate
every day. With your favorite editor, as root, create a file /etc/cron.daily/ntpdate containing:
ntpdate ntp.ubuntu.com
The file /etc/cron.daily/ntpdate must also be executable.
sudo chmod 755 /etc/cron.daily/ntpdate
ntpd
ntpdate is a bit of a blunt instrument - it can only adjust the time once a day, in one big correction.
The ntp daemon ntpd is far more subtle. It calculntpdate ntp.ubuntu.com pool.ntp.org
And for ntpd edit /etc/ntp.conf to include additional server lines:
server ntp.ubuntu.com
server pool.ntp.org
You may notice pool.ntp.org in the examples above. This is a really good idea which uses round-
robin DNS to return an NTP server from a pool, spreading the load between several different servers.
Even better, they have pools for different regions - for instance, if you are in New Zealand, so you
could use nz.pool.ntp.org instead of pool.ntp.org . Look at http://www.pool.ntp.org/ for more
details.
You can also Google for NTP servers in your region, and add these to your configuration. To test that
a server works, just type sudo ntpdate ntp.server.name and see what happens.
ates the drift of your system clock and continuously
adjusts it, so there are no large corrections that could lead to inconsistent logs for instance. The cost is
a little processing power and memory, but for a modern server this is negligible.
To set up ntpd:
sudo apt-get install ntp
Changing Time Servers
In both cases above, your system will use Ubuntu's NTP server at ntp.ubuntu.com by default. This is
OK, but you might want to use several servers to increase accuracy and resilience, and you may want
to use time servers that are geographically closer to you. to do this for ntpdate, change the contents of
/etc/cron.daily/ntpdate to:
Comments
Post a Comment
https://gengwg.blogspot.com/