菜鸟科技网

Linux时钟同步命令有哪些?

在Linux系统中,时钟同步是确保系统时间准确的重要操作,尤其对于日志记录、定时任务、安全认证等依赖时间准确性的场景至关重要,Linux时钟同步主要依赖网络时间协议(NTP)及其简化版本网络时间安全协议(NTS),通过内置工具或第三方服务实现时间校准,以下是常用的时钟同步命令及相关操作详解。

Linux时钟同步命令有哪些?-图1
(图片来源网络,侵删)

基础时钟同步命令

date命令:手动调整时间

date命令是Linux中最基础的时间查看与设置工具,可用于手动调整系统时间,但需注意手动调整可能导致时间跳跃,影响依赖时间的服务。

  • 查看当前时间

    date

    输出示例:2023年 10月 12日 星期四 10:15:30 CST

  • 手动设置时间(需root权限):

    Linux时钟同步命令有哪些?-图2
    (图片来源网络,侵删)
    date --set="20231012 101530"  # 格式:YYYYMMDD HHMMSS

    此命令仅修改系统时间,不会同步硬件时钟(RTC),重启后可能恢复原值。

hwclock命令:同步硬件时钟

硬件时钟(RTC)是主板上的独立时钟,即使系统关闭也会运行。hwclock用于同步系统时间与硬件时钟,确保时间持久化。

  • 查看硬件时钟时间
    hwclock --show
  • 系统时间同步到硬件时钟
    hwclock --systohc  # 常用,确保关机后时间不丢失
  • 硬件时钟同步到系统时间
    hwclock --hctosys

NTP自动同步工具

ntpd:NTP守护进程(持续同步)

ntpd是NTP协议的官方实现,适合需要高精度、持续同步的场景(如服务器),它以低优先级后台运行,逐步调整时间,避免时间突变。

  • 安装ntpd(以CentOS为例):
    yum install ntp -y  # RedHat系
    apt install ntp -y   # Debian系
  • 配置NTP服务器:编辑/etc/ntp.conf,添加或修改以下内容:
    server 0.cn.pool.ntp.org    # 中国NTP服务器
    server 1.cn.pool.ntp.org
    server 2.cn.pool.ntp.org
    server 3.cn.pool.ntp.org
  • 启动并设置开机自启
    systemctl start ntpd
    systemctl enable ntpd
  • 查看同步状态
    ntpq -p  # 显示与NTP服务器的连接状态和偏差

ntpdate:一次性同步工具(已逐渐弃用)

ntpdate是早期的NTP客户端,通过简单命令快速同步时间,但ntpd已推荐替代它,且部分系统(如CentOS 8+)默认不再安装。

Linux时钟同步命令有哪些?-图3
(图片来源网络,侵删)
  • 安装ntpdate
    yum install ntpdate -y
  • 同步指定服务器时间
    ntpdate -u pool.ntp.org  # -u参数避免端口占用
  • 同步后更新硬件时钟
    hwclock --systohc

chrony:高效时间同步工具(推荐)

chrony是新一代时间同步工具,相比ntpd具有更快的同步速度和对网络抖动的更强适应性,适合虚拟机和动态环境。

  • 安装chrony(CentOS 7+/Ubuntu 18.04+推荐):
    yum install chrony -y  # RedHat系
    apt install chrony -y  # Debian系
  • 配置chrony:编辑/etc/chrony.conf,设置NTP服务器:
    server 0.cn.pool.ntp.org iburst  # iburst加速初始同步
  • 启动并自启
    systemctl start chronyd
    systemctl enable chronyd
  • 查看同步状态
    chronyc sources -v  # 显示时间源状态
    chronyc tracking    # 查看同步精度和偏差

常用NTP服务器地址

地区 推荐NTP服务器地址
中国 cn.pool.ntp.org, 1.cn.pool.ntp.org
全球 pool.ntp.org, time.windows.com
教育网 ntp.edu.cn, s1a.time.edu.cn

FAQs

Q1:为什么使用chrony而非ntpd
A:chrony在初始同步速度、网络延迟适应性(如高延迟或丢包环境)和资源占用上更优,尤其适合虚拟化场景(如VMware、K8s集群),而ntpd更适合对时间精度要求极高(如金融交易)的物理服务器环境,但同步速度较慢,当前主流Linux发行版(如RHEL 8、Ubuntu 20.04)已默认推荐chrony

Q2:如何检查时间同步是否成功?
A:可通过以下命令验证:

  1. date命令:查看当前系统时间是否与标准时间一致(如通过浏览器搜索“当前时间”对比)。
  2. ntpq -pchronyc sources:若输出中reach列显示377(8位二进制全1),表示与NTP服务器同步成功;st列(stratum)越小(通常为1-5),表示时间源越可靠。
  3. timedatectl(systemd系统):timedatectl status可查看“NTP服务”是否为“活跃”,以及“本地时间”与“世界协调时间(UTC)”是否同步。
分享:
扫描分享到社交APP
上一篇
下一篇