Enable System clock synchronization

'timedatectl' is giving following output -

 Local time: Wed 2018-06-13 18:08:51 IST Universal time: Wed 2018-06-13 12:38:51 UTC RTC time: Wed 2018-06-13 12:38:51 Time zone: Asia/Kolkata (IST, +0530) System clock synchronized: no
systemd-timesyncd.service active: yes RTC in local TZ: no

How to set System clock synchronized to yes?

1

8 Answers

It can be done without deploying NTP like this:

sudo nano /etc/systemd/timesyncd.conf 

Edit the NTP Server detail

[Time]
NTP=ur.ntp.srv
FallbackNTP=ur.fallbackntp.srv

Then

sudo systemctl daemon-reload
sudo timedatectl set-ntp off
sudo timedatectl set-ntp on

and you can check it with

timedatectl status
2

One way to do it is to use ntp which still works in Ubuntu 18.04. Run the following command to install ntp.

sudo apt install ntp

After it is installed you can run ntpq -p to make sure that it is working.

~$ ntpq -p remote refid st t when poll reach delay offset jitter
============================================================================== 0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000

Then in your /etc/crontab file add @reboot root /usr/sbin/ntpd -n so that the ntpd will automatically start when the system reboots. Use your favorite editor like gedit or mousepad or whatever you like:

pkexec gedit /etc/crontab

It should kind of look like this when the line is added:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
@reboot root /usr/sbin/ntpd -n
#

Then reboot the computer for the settings to take effect.

~$ timedatectl status Local time: Wed 2018-06-13 06:55:35 MDT Universal time: Wed 2018-06-13 12:55:35 UTC RTC time: Wed 2018-06-13 12:55:36 Time zone: America/Denver (MDT, -0600) System clock synchronized: yes
systemd-timesyncd.service active: yes RTC in local TZ: no

If you want to change your servers to the Asia Pool servers add them into the # Use servers from the NTP Pool Project. part of the /etc/ntp.conf file like so:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See for
# more information.
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org

Hope this helps!

The following worked for me:

timedatectl set-ntp true

and then...

systemctl restart systemd-timesyncd

Example:

enter image description here

2

For those using Ubuntu 18+ on AWS EC2 instances, I found this worked fantastically. It utilizes AWS' internal time sync service:

sudo apt install chrony
sudo nano /etc/chrony/chrony.conf

Add the following line before any other server entry:

server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

and then

sudo /etc/init.d/chrony restart

The best part about this method for EC2 instances is that you don't have to modify your security group rules, even if your instance is not connected to the Internet :)

Source

A related case that isn't exactly this one but I want to add it somewhere:

It is possible, as was the case for me, for this timedatectl output to correspond to the NTP port being blocked by your firewall.

On Ubuntu, you can explicitly allow communications on the NTP port of 123 by running the following command:

sudo ufw allow out from any to any port 123

This will allow outbound traffic from a service running on your PC using any port/network-protocol combination to services running on a remote machine using port 123 with any network protocol. This includes services running on remote machines that implement the network time protocol, which is required for being able to ask for the time from a remote machine.

2

Gui Option: Go to "Settings" --> "Details" --> "Date & Time" --> Turn on "Automatic Date and Time".

systemctl restart systemd-timesyncd might help

1

For those who followed max's answer, but failed. Go to NTP, choose your specific pool zone, and add at least two pool zones to your /etc/systemd/timesyncd.conf. For instance, for Asia, add:

[Time]
NTP=0.asia.pool.ntp.org 1.asia.pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org

Then run the rest of the commands in the recommended answer.

I read somewhere that you have to have your system time maximum 1000 seconds off the sync-server time for the sync to work. If your current system time is more than 1000s off it will not work. So try to change the time manually first:

timedatectl set-ntp false
timedatectl set-timezone 'Europe/Berlin'
timedatectl set-time 2022-01-13
timedatectl set-time 13:16
timedatectl set-ntp true

after doing so i got the "yes" in timedatectl

 Local time: Thu 2022-01-13 13:16:16 CET Universal time: Thu 2022-01-13 12:16:16 UTC RTC time: n/a Time zone: Europe/Berlin (CET, +0100)
System clock synchronized: yes # <----------- it's synced NTP service: active RTC in local TZ: no 

For more information see the -g option here

0

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like