如何设置 Debian 自动更新时间和日期?

kra*_*mir 18 linux debian time

我有一台旧电脑,BIOS 计算的时间比实际慢;)

那么,如何设置我的操作系统以使用互联网自动更新时间?

如果它只在启动时更新时间,就足够了。

pat*_*eza 23

如果您systemd版本大于213(检查:)systemd --version,则不必安装ntp包来同步系统时间。

systemd提供systemd-timesyncd实现SNTP(简单 NTP)客户端的守护进程。

启动和启用 SNTP 同步:

timedatectl set-ntp true
Run Code Online (Sandbox Code Playgroud)

显示系统时钟和RTC 的当前设置:

timedatectl status
Run Code Online (Sandbox Code Playgroud)

systemd-timesyncd守护进程的配置在/etc/systemd/timesyncd.conf文件中。您可以在那里提供您的 NTP 服务器。默认情况下所有服务器都注释和NTP服务器中获得的systemd-networkd.service(8)配置或经由DHCP。

如果您在Linux 的同时安装了Windows,您可能会遇到双引导系统时间问题。原因很简单:Windows 将硬件时钟保持在本地时间,Linux 保持在 UTC 时间(可能有用但推荐;您最好更改Windows时间设置以强制将硬件时钟保持在 UTC 时间)。timedatectl set-local-rtc 1

  • 如果您以最小模式安装 Debian,则 `systemd-timesyncd` 服务将不可用,并且 `timedatectl set-ntp true` 会给您一个错误。只需运行“sudo apt install systemd-timesyncd”即可。 (3认同)
  • 对于使用 Debian 8 的人来说,这是一个很棒的答案。谢谢! (2认同)

Sim*_*han 13

您实际上可以在系统启动期间设置时间,并且从Debian 文档中他们甚至指定它用于不能正确跟踪时间的硬件。不过我建议使用 NTP。您可以将其设置为连接到 NTP 服务器。首先安装NTP,使用

$ sudo apt-get install ntp
Run Code Online (Sandbox Code Playgroud)

安装后,导航到 /etc/ntp.conf,您可以使用您喜欢的文本编辑器对其进行编辑。比如说,gedit 或 nano。

$ sudo nano /etc/ntp.conf
Run Code Online (Sandbox Code Playgroud)

我不确定它是否需要 sudo,但无论如何你都可以使用它。

您需要知道一个 NTP 服务器才能进行设置。修改您的文件,如下所示:

 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
Run Code Online (Sandbox Code Playgroud)

将 somedomain.something 和 something.else 替换为 NTP 服务器。您可以从NTP 服务器主页找到一些 h 。


小智 5

sudo apt-get install ntp
sudo systemctl restart ntp
sudo systemctl enable ntp 
Run Code Online (Sandbox Code Playgroud)

就是这样。运行一下$ date看看是否有效。