您可能已经设置了cron作业来备份重要文件或在特定时间执行系统相关任务。也许您将日志服务器配置为以特定时间间隔轮换日志。但如果你的时钟不同步,这些任务就不会准时完成。这就是为什么在您的Linux系统上设置正确的时区并使时钟与互联网保持同步很重要。本指南介绍了如何在UbuntuLinux上设置时间同步。下面的步骤已经在Ubuntu18.04上进行了测试,但它们对于使用systemd的timesyncd服务的其他基于Ubuntu的系统是相同的。在Ubuntu上设置时间同步通常,我们在安装时设置时区。但是,您可以根据需要更改或设置不同的时区。首先,让我们使用date命令查看Ubuntu系统中的当前时区:$date示例输出:TueJul3011:47:39UTC2019正如您在上面看到的,date命令显示实际日期和当前时间.在这里,我当前的时区是UTC,代表协调世界时。或者,您可以在/etc/timezone文件中查找当前时区。$cat/etc/timezoneUTC现在,让我们看看时钟是否与互联网同步。只需运行:$timedatectl示例输出:当地时间:星期二2019-07-3011:53:58UTC通用时间:星期二2019-07-3011:53:58UTCRTC时间:星期二2019-07-3011:53:59Timezone:Etc/UTC(UTC,+0000)系统时钟同步:yessystemd-timesyncd.serviceactive:yesRTC在本地TZ:no服务器同步,以及systemd-timesyncd.service是否处于活动状态。在我的例子中,系统时钟与互联网时间服务器同步。如果时钟不同步,您将看到Systemclocksynchronized:no显示在下面的屏幕截图中。时间同步被禁用。注意:上面的屏幕截图是旧的。这就是为什么您会看到不同的日期。如果您看到Systemclocksynchronized:值设置为no,则timesyncd服务可能处于非活动状态。所以只需重启服务,看看是否有效。$sudosystemctlrestartsystemd-timesyncd.service现在检查timesyncd服务状态:$sudosystemctlstatussystemd-timesyncd.service●systemd-timesyncd.service-网络时间同步加载:加载(/lib/systemd/system/systemd-timesyncd.service;已启用;供应商预设:已启用)活动:自2019年7月30日星期二10:50:18UTC起活动(运行);1小时11分钟前文档:man:systemd-timesyncd.service(8)MainPID:498(systemd-timesyn)Status:"Synchronizedtotimeserver[2001:67c:1560:8003::c7]:123(ntp.ubuntu.com)."Tasks:2(limit:2319)CGroup:/system.slice/systemd-timesyncd.service└─498/lib/systemd/systemd-timesyncdJul3010:50:30ubuntuserversystemd-timesyncd[498]:网络配置更改,尝试estabJul3010:50:31ubuntuserversystemd-timesyncd[498]:网络配置更改,尝试estabJul3010:50:31ubuntuserversystemd-timesyncd[498]:网络配置更改,尝试estabJul3010:50:32ubuntuserversystemd-timesyncd[498]:网络配置已更改,试图建立Jul3010:50:32ubuntuserversystemd-timesyncd[498]:网络配置已更改,试图建立Jul3010:50:35ubuntuserversystemd-timesyncd[498]:网络配置已更改,Jtryingtoestab3010:50:35ubuntuserversystemd-timesyncd[498]:网络配置已更改,试图建立Jul3010:50:35ubuntuserversystemd-timesyncd[498]:网络配置已更改,试图建立Jul3010:50:35ubuntuserversystemd-timesyncd[498]:Networkconfigurationchanged,tryingtoestablishJul3010:51:06ubuntuserversystemd-timesyncd[498]:Synchronizedtotimeserver[2001:67c:1560:800如果此服务已启用并处于活动状态,则系统时钟应与互联网时间服务器同步。您可以使用以下命令验证时间同步是否已启用:$timedatectl如果它仍然不起作用,请运行以下命令以启用时间同步:$sudotimedatectlset-ntptrue您的系统时钟现在将与Internet时间服务器同步。使用timedatectl命令更改时区如果我想使用UTC以外的时区怎么办?这很容易!首先,使用以下命令列出可用时区:$timedatectllist-timezones您将看到类似于下图的输出。使用timedatectl命令列出时区。您可以使用以下命令设置所需的时区(例如亚洲/上海):在时区设置中,请注意缩写CST将代表四个不同的时区,因此建议使用城市和UTC+8用于设置。)$sudotimedatectlset-timezoneAsia/Shanghai使用date命令仔细检查时区是否真的改变了:$dateTueJul3020:22:33CST2019或者,如果需要详细输出,请使用timedatectl命令:$timedatectl本地时间:星期二2019-07-3020:22:35CST通用时间:星期二2019-07-3012:22:35UTCRTC时间:星期二2019-07-3012:22:36时区:亚洲/上海(CST,+0800)系统时钟已同步:yessystemd-timesyncd.serviceactive:yesRTCinlocalTZ:no如您所见,我已将时区从UTC更改为CST(中国标准时间)。()要切换回UTC时区,只需运行:$sudotimedatectlset-timezoneUTC使用tzdata更改时区在旧的Ubuntu版本中,没有timedatectl命令。这种情况下可以使用tzdata(Timezonedata)来设置时间同步。$sudodpkg-reconfiguretzdata选择你居住的地理区域。对我来说,我选择亚洲。选择确定并按Enter。接下来,选择与您的时区相对应的城市或地区。这里,我选择了加尔各答(LCTT译注:中国用户请相应使用上海等城市)。最后,您将在终端中看到类似于以下内容的输出。当前默认时区:'Asia/Shanghai'本地时间现在是:TueJul3021:59:25CST2019.UniversalTimenow:TueJul3013:59:25UTC2019.一些用户在图形模式下配置时区可能不太习惯命令行方式。如果您是其中之一,那么您可以在图形模式下的系统设置面板中轻松设置它。点击Super键(Windows键),在Ubuntu破折号中输入设置,然后点击设置图标。从Ubuntu破折号启动系统设置或者,单击位于Ubuntu桌面右上角的向下箭头,然后单击左上角的设置图标。从顶部面板启动系统设置。在下一个窗口中,选择“详细信息”并单击“日期和时间”选项。打开自动日期和时间和自动时区。要在Ubuntu中设置自动时区,只需关闭设置窗口即可!您的系统应始终与Internet时间服务器同步。
