linux服务器断电重启后,发现时间误差八小时

这篇具有很好参考价值的文章主要介绍了linux服务器断电重启后,发现时间误差八小时。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题现象

  • 客户的服务器已部署好平台,放入了机房,运行正常。服务器系统时间设置东八区(CST),时间日期也已修改正确
  • 客户是我省的某小县城,某台晚上,他们大楼停电断电了,包括机房(就几台机器,没做应急电源)
  • 等来电后,服务器重启,我们的平台也通过开机自启动运行的脚本,正确完成了重启,但访问平台时发现日期时间不对
  • 当地维护人员,手动修改了时间(装的是有界面的CentOS系统),重启了我们平台(修改日期时间后,部署在docker服务要重启,时间才会跟着改对),然后将问题反馈给了我
  • 因为他们当地无法避免再次的断电情况,不能每次都手动修改配置

排查与解决

  • 和维护人员沟通了下,问他时间不对,是什么情况,是快了还是慢了,但是遗憾的是他记不清了
  • 如果时间是为1990年1月1日2000年1月1日,应该是时钟固件电池没电了,还是要根据具体的时间来排查
  • 今天中午,让他再次模拟下断电现象(去机房把服务器关机,然后拔掉电源线,等一会再开机),协助排查问题
  • 首先使用timedatectl命令查看系统时间,发现时区设置是对的,时间则刚好差8小时,实际应该是2023-05-23 13:55:51
    linux服务器断电重启后,发现时间误差八小时
  • 先手动将时间设置正确(使用date -stimedatectl set-time),再继续排查
date -s "2023-05-23 13:56:00"
timedatectl set-time "2023-05-23 13:56:00"
  • 然后,输入命令hwclock --show查看硬件时钟时间,果然硬件时间不对,存储的是+8后的时间
    linux服务器断电重启后,发现时间误差八小时
  • 最后,使用命令hwclock --systohc把系统时间写入硬件,再使用命令hwclock --show查看,发现已经生效
    linux服务器断电重启后,发现时间误差八小时
  • 此时系统时间和硬件时间统一,显示也都没问题了,继续断电重启一次,时间显示正常,问题解决
  • 一句话总结下,系统时间与硬件时间不一致,硬件时间存储了CST时间(应该存储UTC),导致断电重启后增加了8小时。将系统时间同步到硬件时间后,生效解决

时间同步与设置

  • 系统时间误差八小时,一般都是时区设置错误导致的,可以参考我这篇博客:【已解决】CentOS7等linux系统时区时间不对显示误差8小时
  • 时区设置完成后,将时间设置正确。如果是联网的机器,可以获取网络时间校时,再设置一个联网自动校时
  • 如果是内网或者局域网,看有没有时间服务器,如果有一台时间服务器,也可以设置下与时间服务器同步,参考我这篇博客:CentOS7.9设置ntp时间同步
  • 如果无法连接互联网,也没有时间同步服务器,就只能依赖机器的时钟固件了。服务器断电后,服务内内置的BIOS芯片的小电池会继续供电,继续持续记录时间(需要电池有电)。这次遇到的问题,一开始问了当地运维是新机器,应该不会没电。

服务器时钟介绍

  • 服务器时钟通常是通过全球卫星定位系统(GPS)或者时间服务器同步的。时钟同步是非常关键的,因为如果服务器上的时钟不准确,会导致许多问题,比如日志记录不准确、安全证书失效等等
  • 主板BIOS电池是一种小型的电池,通常被用来存储主板上的系统设置和时钟时间。在某些情况下,如果服务器无法连接到时间服务器或者GPS信号不稳定等问题,时钟同步可能会失败,这时候主板BIOS电池就会发挥作用,可以保证服务器时钟不会出现太大的偏差
  • 服务器通常具有内置的实时时钟(RTC),其主要作用是提供精确的时间戳来记录系统事件、备份和还原数据以及控制计划任务等。在断电时,RTC电池可以提供电源来维护时钟和日历芯片,确保在断电后系统时间仍然能够精确地被维护,这样可以避免数据损失和系统崩溃等问题
  • BIOS电池是指主板上的一块可更换,负责提供电源给BIOS芯片的小电池。这玩意更换成本很低,电池好像就几块钱,就是更换时需要注意静电损坏设备,可以提前摸下金属放电

BIOS电池的作用是为了让BIOS芯片保持一些重要的设置,如系统时间、启动顺序、CPU电压等。如果没有这个电池,每次电脑断电后这些设置都会被清空,需要重新设置。因此,BIOS电池非常重要,一旦电池失效则会导致系统出现各种异常。

  • 断电时钟是指在电脑断电后依然能够保持系统时间的功能。服务器在断电后,依靠主板可以保持内部时钟的精度和准确性。

断电时钟则是一种通过硬件设计实现的功能,它可以让系统在断电状态下保持时间,这样开机后系统时间就不会出现错误。断电时钟是由主板、BIOS和操作系统三者共同实现的,其中主板和BIOS负责提供硬件和基本的系统时间管理功能,操作系统负责根据断电时钟提供的时间进行更为精确的时间管理。文章来源地址https://www.toymoban.com/news/detail-457199.html

  • 维护服务器时,需要定期检查RTC电池的状态和健康状况,确保其功能和性能,以保证服务器能够正常工作
  • 如果BIOS芯片电池已耗尽或完全失效,断电重启后,日期和时间将被重置为固定的默认值。每个计算机的默认日期和时间可能有所不同,但通常为1990年1月1日2000年1月1日。在这种情况下,您需要手动调整日期和时间,否则这可能会影响计算机的正确运行。

到了这里,关于linux服务器断电重启后,发现时间误差八小时的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [ubuntu]linux服务器每次重启anaconda环境变量失效

    云服务器每次重启后conda不能用了,应该是系统自动把设置环境变量清除了。如果想继续使用,则可以运行一下 你也修改bashrc文件去修改环境变量,方法为 vi ~/.bashrc 在最后一行加入: 上面是对miniconda3,下面是对anaconda3,注意上面用户名要替换自己真实系统用户名 修改完毕

    2024年02月11日
    浏览(76)
  • 重启Linux服务器 Oracle 数据库步骤 重启数据库startup 报ORA-01031 insufficient privileges错误解决

    在一次重启数据库的时候,没有正确按照步骤重启数据库,导致服务器重启。 正确步骤及详解: (1) su - oracle 打开Xshell,连接到数据库所在的linux机器。若用户为root,请输入命令“su - oracle”并回车,若要密码,输入密码后并回车,就切换到了oracle用户下。 检测方法:“#”变

    2024年02月15日
    浏览(67)
  • 服务器断电导致mysql崩溃,使用恢复模式的解决步骤

    2024-02-18T08:45:58.039432Z 0 [ERROR] InnoDB: Page [page id: space=0, page number=238] log sequence number 8738273916 is in the future! Current system log sequence number 8738272796. 2024-02-18T08:45:58.039450Z 0 [ERROR] InnoDB: Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files. Please refer to http://dev.

    2024年02月22日
    浏览(51)
  • Linux服务器校对时间方法

    Debian系统安装NTP校时包: CentOS系统安装NTP校时包: 如果想每隔一定时间自动校时,只需将上面的命令加入至Cron就行了: 注:cn.pool.ntp.org是中国NTP服务器。 NTP服务器官网:NTP Pool Project 语法 参数 -p:显示远端主机的日期与时间。 -s:把从远端主机收到的日期和时间,回存到

    2023年04月15日
    浏览(42)
  • linux两台服务器时间同步

    让Linux两台服务器时间同步,可以通过网络时间协议(NTP)来实现。NTP是一种可以在网络时间服务器和客户端之间同步时间的协议,通过使用NTP,可以保证网络中的所有计算机时间的准确性。 在服务器1上安装NTP服务: 编辑ntp配置文件/etc/ntp.conf,将server字段改为服务器1的IP地

    2024年02月09日
    浏览(46)
  • Linux部署NTP时间服务器实现内外网时间同步

            NTP(Network Time Protocol)是网络时间协议,它的作用是同步网络中每台计算机的时间,使他们处于相同的时间环境,确保服务或软件在计算机中正常运行。         在ntp时间同步架构中,节点分为服务端(server)和客户端(client),server端配置为ntp时钟源,用来为

    2024年04月16日
    浏览(47)
  • 【Linux】NTP服务器配置、时间修改

    2024年02月08日
    浏览(45)
  • Linux下的时间同步,以及ntp时间服务器配置流程

    但在Linux下,系统时间和硬件时间并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠BIOS电池来维持,而系统时间,是用CPU来维持的。在系统开机的时候,会自动从BIOS中取得硬件时间,设置为系统时间。 命令 功能

    2024年04月11日
    浏览(50)
  • 【Linux】查询服务器上次启动时间和原因

    在Linux系统中,可以通过查看系统日志文件来查询服务器上次启动原因。具体步骤如下 以root权限登录系统。 1、使用以下命令查看系统日志文件: 该命令会显示系统的所有日志信息,包括启动信息、进程信息等。 2、使用以下命令查看系统上次启动的信息: 该命令会显示系统

    2024年02月16日
    浏览(52)
  • springboot服务时间筛选问题,同一服务部署在本地和Linux服务器,同样的时间筛选数据不一致

    springboot项目通过时间筛选数据、 时间筛选问题,同一服务部署在本地和Linux服务器,同样的时间筛选数据不一致 接收的参数 服务器打印日志出来的时间为 本地打印出来的时间为 数据库连接配置 本地的时区 和 服务器的时区不一致 UTC时间:世界协调时间(UTC)也就是零时区

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包