时间配置,是每一位系统管理员和运维人员必须掌握的基本功。时区错乱、NTP 不同步、时间漂移,轻则影响日志定位、系统安全认证,重则导致集群故障、交易错误、数据灾难。
一、Linux 中的时间类型
Linux 系统维护两种时间:
通常开机时,系统会从硬件时间读取一次初始化时间,然后通过 NTP(如设置了)自动同步。
#hwclock命令依赖于下面安装包
apt install util-linux-extra
二、查看当前时间和时区
date
输出示例:
Tue Jul 29 22:08:21 CST 2025
其中 CST
为时区代码(China Standard Time)。
timedatectl
输出内容包括:
本地时间
UTC 时间
RTC 时间
时区
NTP 是否启用
时间是否同步成功
三、配置时区(Timezone)
1. 查看所有可用时区列表:
timedatectl list-timezones
示例部分输出:
Asia/Shanghai
Asia/Tokyo
Europe/London
America/New_York
2. 设置为上海时区:
timedatectl set-timezone Asia/Shanghai
设置后再次运行 timedatectl
验证是否生效。
四、设置系统时间(手动方式)
注意:若未使用 NTP 或测试环境可手动设置。
格式:
sudo date -s "2025-07-29 22:30:00"
设置完后用 date
查看是否生效。
五、同步硬件时间(BIOS 时间)
系统时间设置后,推荐同步到 RTC:
hwclock --systohc
反过来,如果要将 BIOS 时间同步到系统时间:
hwclock --hctosys
六、开启自动时间同步(NTP)
1. 使用 systemd-timesyncd(推荐系统内建)
timedatectl set-ntp true
查看同步状态:
timedatectl status
如果提示 NTP 未启用,确保安装了 systemd-timesyncd
服务。
注意:部分发行版(如 CentOS 7)未默认使用
timesyncd
,需使用chronyd
或ntpd
。
七、配置 NTP 服务(适用于服务器环境)
方案一:使用 chrony
(CentOS 7+/RHEL)
1. 安装:
yum install chrony
2. 配置 /etc/chrony.conf
server ntp.aliyun.com iburst
server ntp.tencent.com iburst
3. 启动并设置开机自启:
systemctl enable --now chronyd
chronyc sources -v # 查看当前NTP源
方案二:使用 ntpd
(经典方案)
yum install ntp
systemctl enable --now ntpd
配置 /etc/ntp.conf
:
server ntp.aliyun.com prefer
八、特殊命令备忘
九、常见问题排查
问题1:时间总是不准?
检查是否启用了 NTP:
timedatectl status
若未启用,请运行:
timedatectl set-ntp true
问题2:系统时间正确但日志时间不对?
检查时区配置是否一致;
日志记录程序是否以 UTC 写入。
问题3:虚拟机/容器时间不对?
检查是否依赖宿主机时间;
建议容器内也启用 NTP 服务或绑定宿主同步。
十、总结与建议
尾声:时间看似简单,却关乎一切系统行为
计划任务(cron)
日志打点
加密/认证机制(如 Kerberos)
分布式系统的一致性(如 Kafka)
一个错误的时间设置,可能让你在系统奔溃之后找不到任何证据。
掌握 Linux 时间配置,不仅是“细节”,更是稳定运维的基石。