linux 系统时间不准解决办法
最近项目中遇到测试提出的一些bug(因为跨时区的,时间转换的问题),检查代码没发现任何问题。经过一系列排查,最终查看服务器的时间,差了很多。
我不是专业运维,怎么调整linux服务器的时间,一时兴起查了一下,总结如下:
1:查看系统时间可以用date
~ date
Mon Oct 2 15:30:45 CST 2023
2:查看系统时间配置可以用timedatectl
~ timedatectl
Local time: Mon 2023-10-02 15:30:45 CST
Universal time: Mon 2023-10-02 07:30:45 UTC
RTC time: Mon 2023-10-02 07:30:45
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
-
Time zone 显示当前系统时区(如
Asia/Shanghai
)。 -
Local time 显示本地时间。
-
Universal time 显示 UTC 时间。
3:查看时区文件
Linux 系统的时区配置文件通常位于 /etc/localtime
,它是一个符号链接,指向 /usr/share/zoneinfo/
下的具体时区文件:
ls -l /etc/localtime
lrwxrwxrwx 1 root root 33 Oct 1 12:00 /etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai
4:修改系统时区(任选一种即可)
4-1:例如将时区设置为 Asia/Shanghai
sudo timedatectl set-timezone Asia/Shanghai
4-2:手动创建符号链接
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4-3:启用 NTP 时间同步
启用 NTP 服务后,系统会自动与网络时间服务器同步。
sudo timedatectl set-ntp true
4-4:手动同步时间
使用 ntpdate
或 chrony
都可手动同步时间:
sudo ntpdate pool.ntp.org
sudo chronyc makestep