在日常工作中,但凡经常操作Linux的小伙伴大多都会遇到服务器时间不准的问题,那么本文就主要针对如何修改校准Linux时钟提供了常用的操作命令和使用方法,希望对小伙伴们能有所帮助~_~
1 查看系统时钟的当前时间
date
2 如果系统时钟不准确,可以使用下面命令将硬件时间同步到系统时钟
hwclock --hctosys
3 如果系统时钟是准确的,硬件时钟不准,可以使用下面命令将系统时钟的时间写入硬件时钟
hwclock --systohc
科谱一下,便于理解
(1)硬件时间是主板上由电池供电的时钟,存储在主板的CMOS里,关机后该时钟依然运行,主板的电池为它供电。
(2)系统时钟你可以理解为是操作系统的时钟,系统时钟在电脑开机时进行初始化,通过对硬件时钟的“拷贝”完成初始化,系统时钟可以通过网络时钟进行同步,在windows系统中,系统默认每隔一段时间会和网络时钟校正同步一次。
4 列出所有可用的时区
timedatectl list-timezones
5 查看时区设置情况
timedatectl
6 修改时区
方法1
更改 /etc/localtime 的符号链接,使其指向 /usr/share/zoneinfo/ 下的相应时区文件
比方说我要设置为北京时区,可以使用以下命令
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
方法2
直接使用这个命令修改时区
sudo timedatectl set-timezone America/New_York
然后使用timedatectl或date命令来确认更改是否生效
7 手动设置或校正系统时间
可以使用 date 命令,但是,需要注意一下,这种手动设置的时间在系统重启或与硬件时钟同步时可能会丢失。
为了长期保持更改,也需要将更改的时间写入硬件时钟。
手动设置系统时间的基本命令格式如下
sudo date MMDDhhmm[[CC]YY][.ss]
参数解析
MM - 月份(01至12)
DD - 一月中的日子(01至31)
hh - 小时(00至23)
mm - 分钟(00至59)
CC - 世纪(可选)
YY - 年份的最后两位数字(可选,如果省略世纪,则默认为当前世纪)
ss - 秒(00至59,可选)
例如,我们想将日期和时间设置为2023年12月10日 15:30:00,可以使用以下命令
sudo date 121015302023
在更改系统时间之后,如果还想将更改的时间写入硬件时钟,以便在重启后保持一致,那么可以使用下面命令
sudo hwclock --systohc
这会将当前的系统时间(刚刚使用 date 命令设置的时间)写入硬件时钟。
8 自动校准时间方法
在系统中自动校准时间,通常会使用网络时间协议(NTP)服务。这些服务可以自动与远程NTP服务器同步,以保持系统时间的准确性,下面是设置和使用NTP服务的基本步骤:
8.1 安装 NTP 服务
在大多数现代Linux发行版中,您可以使用包管理器来安装NTP服务。例如,在基于Debian的系统上,您可以使用以下命令:
sudo apt-get update
sudo apt-get install ntp
8.2 配置 NTP 服务
NTP服务的配置文件通常位于 `/etc/ntp.conf`,可以编辑此文件来添加或更改NTP服务器。
很多操作系统默认配置了一些公共NTP服务器,可以根据需要添加更多服务器。
8.3 启动 NTP 服务
sudo systemctl start ntp
8.4 设置 NTP 服务开机自启
sudo systemctl enable ntp
8.5 检查 NTP 服务状态
sudo systemctl status ntp
8.6 校准系统时间
可以使用 `ntpdate` 命令手动强制同步时间,这里需要注意的是,在NTP服务运行时不能使用 `ntpdate`。如果想使用它,首先需要停止NTP服务,具体参考如下命令
sudo systemctl stop ntp
sudo ntpdate pool.ntp.org
sudo systemctl start ntp
9 使用 Chrony 替代 NTP
在一些现代Linux发行版中,Chrony 是推荐的时间同步服务,因为它比传统的NTP更快更准确,安装和配置Chrony的步骤与NTP类似,只是软件包和服务名称不同。
注:在有些系统上,NTP或Chrony可能已经预装和预配置好了。
Chrony 是一个现代、高效的网络时间协议(NTP)实现,适用于各种网络条件,包括有间断性连接的系统。
9.1 安装 Chrony
sudo apt-get update
sudo apt-get install chrony
9.2 配置 Chrony
Chrony 的配置文件通常位于 `/etc/chrony/chrony.conf`,可以编辑此文件来添加或更改NTP服务器。
大多数情况下,默认配置文件已包含一些公共NTP服务器,可以根据需要进行调整。
9.3 启动 Chrony 服务
sudo systemctl start chronyd
9.4 设置 Chrony 服务开机自启
sudo systemctl enable chronyd
9.5 检查 Chrony 服务状态
sudo systemctl status chronyd
9.6 查看同步状态
使用 Chrony 提供的 `chronyc` 命令来查看同步状态和性能信息。
chronyc tracking
这个命令显示了当前时间源的状态和有关系统时钟性能的信息。
9.7 手动同步时间
如果需要,还可以使用 `chronyc` 手动强制同步时间
sudo chronyc -a makestep
虚拟化环境中的时间校准,大家需要特殊注意一下,如果您的服务器是虚拟机并且在反复尝试上面的方法后都无法校准时间,那么则需要考虑虚拟化平台(如 VMware, Hyper-V)对时间管理的影响,适当配置虚拟机的时间同步选项。
想要了解更多实用小干货
可关注我的【知乎】