How to set Debian to automatically update time and date?
I have an old computer and BIOS counts the time slower than real ;)
So, how can I set my OS to update the time automatically using the internet?
If it updated the time only during booting, it would be enough.
You can set the time during system boot actually, and from the Debian Documentation they even specify it for use on hardware that doesn't keep track of time properly. I recommend using NTP though. You can set it up to connect to an NTP server. First install NTP though, using
$ sudo apt-get install ntp
Once it's installed, navigate to /etc/ntp.conf which you can edit using your favourite text edit. Say, gedit or nano.
$ sudo nano /etc/ntp.conf
I'm not sure if it needs sudo, but you can use it anyway.
You need to know an NTP server to set this. Modify your file to be like so:
logfile /var/log/xntpd
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server ntp.somedomain.something
server ntp.something.else
Replace the somedomain.something and something.else with NTP servers. You can find some hfrom the NTP server home.
If you have systemd
in version greater than 213
(check: systemd --version
), you don't have to install ntp
package to synchronize system time.
systemd
provides systemd-timesyncd
daemon which implements SNTP (Simple NTP) client.
To start and enable SNTP synchronization:
timedatectl set-ntp true
To show current settings of the system clock and RTC:
timedatectl status
Configuration of systemd-timesyncd
daemon is in /etc/systemd/timesyncd.conf
file. You can provide your NTP servers there. By default all servers are commented out and NTP servers are obtained from systemd-networkd.service(8)
configuration or via DHCP.
If you have installed Windows alongside Linux, you may struggle with dual-boot system time issues. The reason is simple: Windows keeps hardware clock in local time and Linux in UTC time (timedatectl set-local-rtc 1
may be helpful but is not recommended; you'd better change Windows time settings to force keeping hardware clock in UTC).
sudo apt-get install ntp
sudo systemctl restart ntp
sudo systemctl enable ntp
That's it. Just run $ date
to see if it works.