15

'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?

11

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 http://www.pool.ntp.org/join.html 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!

| improve this answer | |
18

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
| improve this answer | |
  • 1
    You can also provide a list of ntp servers (space separated list) in your timesyncd.conf file: NTP=0.ur.ntp.srv 1.ur.ntp.srv; You can also provide a server pool (global pool, or specific to a region or a country): pool.ntp.org/zone/@ – Géraud Apr 23 at 12:47
  • After doing all of this it still shows me "System clock synchronized: no" – ka3ak Oct 12 at 7:15
6

The following worked for me:

timedatectl set-ntp true

and then...

systemctl restart systemd-timesyncd

Example:

enter image description here

| improve this answer | |
  • 2
    Didn't work for me. – ATX May 2 at 8:16
  • 1
    Worked for me too. – ka3ak Oct 12 at 7:21
4

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.

| improve this answer | |
3

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

systemctl restart systemd-timesyncd might help

| improve this answer | |
  • It doesn't affect System clock synchronized – Abdollah Jun 23 at 11:30
3

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

| improve this answer | |

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.