【原创】CentOS 系统时间超前 8 小时解决办法

简介:

        很多网友在安装完 CentOS 系统后发现时间与现在时间相差 8 小时,这是由于在安装系统的时选择的时区是上海,而 CentOS 默认 BIOS 时间是 UTC 时间,所以时间相差了 8 小时。这个时候的 BIOS 的时间和系统的时间是不一致的,一个代表 UTC 时间,一个代表 CST 时间(+8时区),即上海时间。


【同步时间的解决方法】

首先,修改时区配置
?
1
2
3
4
# vi /etc/sysconfig/clock
ZONE= "Asia/Shanghai"
UTC= false            # 设置为 false ,硬件时钟不和 utc 时间一致
ARC= false
其次,同步系统时间,并写入 BIOS  
?
1
2
3
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime      # linux 的时区设置为上海
# ntpdate pool.ntp.org                 # 通过公网 NTP 服务器校准时间
# /sbin/hwclock --systohc              # 设置硬件时间和系统时间一致并校准
至此,linux 系统时间和计算机硬件时间都是 CST 时间了,并且为上海时区。  


【公网 NTP 服务器】  

访问 www.ntp.org 这个的网站,就可以找到一堆时间服务器的地址  

  表1 互联网上的时间服务器列表
Area
 HostName
Worldwide
 pool.ntp.org
Asia
asia.pool.ntp.org
Europe
europe.pool.ntp.org
North America
north-america.pool.ntp.org
Oceania
oceania.pool.ntp.org
South America
south-america.pool.ntp.org

        这些服务器都是可用的,而且对其进行连接速度也很快,其中重点推荐 pool.ntp.org ,正像网址名字所表达的,这实际是一个地址池,里面根据实际情况来实时调整可用服务器地址。  


【确定时区配置】  

      系统自带时区文件保存在 /usr/share/zoneinfo/ 目录下,在该目录下找到 Asia/Shanghai 拷贝到 /etc 下命名为 localtime 即可。也可以建立软连接,可以保证系统数据有变化时随时更新。  
      另外一个相关配置文件是 /etc/sysconfig/clock ,其内容如下  
?
1
2
3
4
5
6
[root@Paxos conf] # vi /etc/sysconfig/clock
 
# The time zone of the system is defined by the contents of /etc/localtime.
# This file is only for evaluation by system-config-date, do not rely on its
# contents elsewhere.
ZONE= "Asia/Shanghai"
默认只有一行表明自己时区的配置。  


【确定 Linux 使用的时间方案】  

      Linux 支持 UTC (Coordinated Universal Time) 时间,即世界协调时,也就是本初子午线上的时间。它和以前的格林威治标准时(GMT)的区别似乎是它是由多个原子钟平均出来的。在 /etc/sysconfig/clock 这个文件中,可以指明 BIOS 是否使用了 UTC 时间,UTC=yes 就是用了。  
      计算机自己还有自己的时间,也就是硬件时间,hard clock,也就是存在 BIOS 里那个时间,关机也不会丢失。计算机启动时,就要读取这个时间。这个时间如果设定为 UTC(GMT),也就是伦敦那地方的时间,就要在 /etc/sysconfig/clock 文件中设定 UTC=yes ,反之则要设为 no 。  

所以,只存在两种正确的设置:  
  • BIOS=本地时间,UTC=no
  • BIOS=UTC时间,UTC=yes
一般来讲,BIOS 里面都设定为当地时间。  


【本地时间修正】  

当执行 date 命令查看系统时间发现快了 8 小时的情况时,你需要做时间修正。  
Linux 读取硬件时间要用到 hwclock 这个命令:  
  • hwclock --show        显示硬件时间
  • hwclock --systohc     将系统时间写入硬件
  • hwclock --hctosys     将硬件时间写入系统时间

1.首先,需要校准 date 显示的系统时间。可以通过 date 命令直接设置,还可以通过 ntpdate 通过外部时间服务器进行校准。  
?
1
2
yum install ntpdate
ntpdate pool.ntp.org
此时系统时间就已经与外部 ntp 服务器时间同步了,相当精确。  

2.其次,需要校准 BIOS 上的硬件时钟。可以找个精确的时间源,再靠自己的手指来精确设定 BIOS 时间,还可以通过  
hwclock 把准确的时间写入 BIOS 。如果已经将系统时间校准了,则可以通过如下命令将时间写入 BIOS :  
?
1
hwclock --systohc
这样 BIOS 时间也校准了。以后开机即使没网络,没办法运行 ntpdate 的时候,系统时间也都是准的。  
目录
相关文章
|
Linux 数据安全/隐私保护
centOS 7无法连接网络详细解决办法
centOS 7无法连接网络详细解决办法
1688 0
centOS 7无法连接网络详细解决办法
|
Linux 虚拟化 Windows
centos7.x 查询不到ip地址显示【解决办法】
centos7.x 查询不到ip地址显示【解决办法】
984 0
centos7.x 查询不到ip地址显示【解决办法】
|
3月前
|
Oracle 关系型数据库 MySQL
centos6安装mariadb失败及解决办法
centos6安装mariadb失败及解决办法
98 4
|
1月前
|
网络协议 Linux
CentOS7 yum安装报错“Could not resolve host: mirrorlist.centos.org;"之解决办法(换源)
CentOS7 yum安装报错“Could not resolve host: mirrorlist.centos.org; Name or service not known“之解决办法(换源)
|
Linux
安装CentOS7出现dracut:/#......time解决办法
安装CentOS7出现dracut:/#......time解决办法
671 0
|
4月前
centos6.0下Error:Connectionactivationfailed:DevicenotmanagedbyNetworkManager解决办法
centos6.0下Error:Connectionactivationfailed:DevicenotmanagedbyNetworkManager解决办法
73 0
|
Linux Shell 数据安全/隐私保护
百度搜索:蓝易云【CentOS7系统服务器密码忘记的解决办法?】
总之,以上步骤是在忘记CentOS7系统服务器密码时的一种解决办法,需要谨慎操作。同时,也建议在平时的使用中,定期备份重要数据,以避免意外情况的发生。
462 0
|
关系型数据库 MySQL Java
Centos7安装jdk8以及mysql5.7以及Navicat连接虚拟机mysql的出错以及解决方法(附mysql下载出错解决办法)
Centos7安装jdk8以及mysql5.7以及Navicat连接虚拟机mysql的出错以及解决方法(附mysql下载出错解决办法)
199 0
|
关系型数据库 MySQL Linux
CentOS 常见异常及解决办法
在CentOS上部署Django项目时,经常需要安装MySQL数据库引擎,如mysqlclient,在执行pip3 install mysqlclient命令时,可能会报错如下:
CentOS 常见异常及解决办法
|
Linux 网络安全
解决办法:Centos 7 SSH连接超时自动断开
解决办法:Centos 7 SSH连接超时自动断开
307 0