CentOS设置系统时间,重启后失效问题

本文介绍如何在CentOS系统中正确设置系统时间和硬件时间,并确保在系统重启后时间设置仍然有效。主要内容包括使用date命令修改系统时间、使用hwclock命令同步硬件时间与系统时间、更改时区等步骤。

解决CentOS中系统时间修改后重启失效

1、显示系统时间:

    #date


2、修改系统时间:
    #date -s '2013-10-03 21:43'

    将设置系统时间为本地时间


3、显示硬件时间

    #hwclock --show


4、设置硬件时间

    #hwclock --set --date '10/03/2013 21:43:00'


5、同步系统时间(与硬件)

    #hwclock --hctosys


6、强制将系统时间写入CMOS

    #clock -w


7、更改时区

    #ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


8、重新启动系统,系统时间就正常了。



<think>我们正在解决CentOS 7重启系统时间重置的问题。根据用户之前的问题,我们已经提供了使用NTP服务的配置方法。但用户现在又遇到了重启时间重置的问题,可能是由于硬件时钟(RTC)与系统时钟不一致,或者NTP服务没有正确配置和启动导致的。 解决方案: 1. 确保硬件时钟(RTC)与系统时钟同步。CentOS 7默认使用UTC时间作为硬件时钟,而系统时钟在启动时从硬件时钟读取,然后由NTP服务调整。如果硬件时钟本身不正确,或者时区设置错误,就会导致重启时间重置。 2. 配置NTP服务(如chronyd或ntpd)并确保其开机自启,这样每次启动后NTP服务都会自动同步时间。 具体步骤: 步骤1:检查当前系统时间和硬件时间 - 查看系统时间:`date` - 查看硬件时钟:`hwclock --show` 步骤2:设置硬件时钟与系统时间同步 - 将系统时间同步到硬件时钟(如果系统时间正确): ```bash hwclock --systohc ``` - 如果硬件时钟是本地时间(而非UTC),则需要调整。通常建议使用UTC,但如果需要设置为本地时间,可以修改/etc/adjtime文件,或者使用以下命令: ```bash hwclock --systohc --localtime ``` 注意:通常不推荐使用本地时间,因为这样在切换时区或夏令时调整时可能会出现问题。 步骤3:配置时区 - 确保系统时区设置正确: ```bash timedatectl set-timezone Asia/Shanghai # 例如设置为上海时区 ``` - 查看时区设置:`timedatectl status` 步骤4:启用并配置NTP服务(这里以chronyd为例,因为CentOS 7默认使用chrony) - 安装chrony(如果未安装): ```bash yum install chrony -y ``` - 配置chrony:编辑/etc/chrony.conf,确保有可用的NTP服务器,例如: ```bash server ntp.aliyun.com iburst server ntp1.aliyun.com iburst ``` - 启动并启用chronyd服务: ```bash systemctl enable chronyd systemctl start chronyd ``` - 查看chronyd同步状态: ```bash chronyc tracking chronyc sources ``` 步骤5:设置系统时钟同步(如果使用timedatectl) - 确保系统时钟由NTP同步: ```bash timedatectl set-ntp yes ``` 步骤6:验证 - 重启系统,然后检查时间是否正确: ```bash date hwclock --show ``` 如果问题仍然存在,可能是由于重启后NTP服务没有及时同步,或者硬件时钟电池失效(导致硬件时钟重置)等硬件问题。 另外,参考用户提供的引用[1]中提到,可以通过在启动脚本中执行命令来解决问题。我们可以将时间同步的命令写入启动脚本,例如: - 在/etc/rc.local文件中添加(如果使用ntpdate): ```bash ntpdate -u ntp.aliyun.com hwclock --systohc ``` 注意:使用ntpdate可能会与chronyd或ntpd服务冲突,所以建议只使用一种时间同步方式。 考虑到引用[3]中提到的/etc/resolv.conf被重置的问题,我们也要注意时间同步服务可能依赖网络配置,确保网络在启动后能够正常工作。 根据上述步骤,我们给出完整的解决方案。 注意:在CentOS 7中,推荐使用chronyd服务,因为它可以更好地适应网络环境的变化(如间歇性网络连接)。 因此,我们优先推荐使用chronyd服务,并设置硬件时钟同步。 如果用户之前配置的是ntpd服务,也可以按照类似步骤配置,但要注意两个服务不要同时运行。 下面以chronyd服务为例,详细说明配置步骤。</think>### 解决 CentOS 7 重启系统时间重置问题 #### 1. **配置 Chrony 时间同步服务**(推荐方案) ```bash # 安装 Chrony yum install chrony -y # 编辑配置文件 vi /etc/chrony.conf ``` 在配置文件中添加可靠的 NTP 服务器(示例): ```conf server ntp.aliyun.com iburst server time1.cloud.tencent.com iburst server pool.ntp.org iburst ``` ```bash # 启动并设置开机自启 systemctl enable chronyd systemctl start chronyd # 验证同步状态 chronyc sources -v chronyc tracking ``` #### 2. **设置硬件时钟同步** ```bash # 将系统时间同步到硬件时钟 timedatectl set-local-rtc 0 # 使用 UTC 时间(推荐) hwclock --systohc # 验证设置 timedatectl status ``` #### 3. **配置开机自动同步**(备用方案) 如果重启时间仍不同步,在 `/etc/rc.local` 添加同步命令: ```bash echo '#!/bin/bash ntpdate -u ntp.aliyun.com hwclock --systohc' | sudo tee /etc/rc.local chmod +x /etc/rc.local systemctl enable rc-local ``` #### 4. **检查时区设置** ```bash # 查看当前时区 timedatectl # 设置正确时区(如亚洲上海) timedatectl set-timezone Asia/Shanghai ``` #### 5. **验证防火墙配置** 确保 NTP 端口(UDP 123)开放: ```bash firewall-cmd --add-service=ntp --permanent firewall-cmd --reload ``` #### 6. **故障排查** - 检查服务状态:`systemctl status chronyd` - 强制时间同步:`chronyc -a makestep` - 查看硬件时钟:`hwclock --show` - 检查系统日志:`journalctl -u chronyd` ### 关键原理说明 1. **硬件时钟(RTC)**:主板电池维持的时间重启系统从此读取初始时间 2. **系统时钟**:内核维护的时间,由 NTP 服务动态调整 3. **同步机制**: - 开机时从硬件时钟加载系统时间 - Chrony 服务持续同步网络时间 - 关机时将系统时间回写至硬件时钟 > **重要提示**:如果硬件时钟电池(CMOS电池)失效,每次重启时间都会重置,需要更换主板电池[^2]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值