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

2024-01-30 10:59

本文主要是介绍linux服务器断电重启后,发现时间误差八小时,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 问题现象
    • 排查与解决
    • 时间同步与设置
    • 服务器时钟介绍

问题现象

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

排查与解决

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

时间同步与设置

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

服务器时钟介绍

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

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

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

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

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

这篇关于linux服务器断电重启后,发现时间误差八小时的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/660021

相关文章

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

Linux之进程状态&&进程优先级详解

《Linux之进程状态&&进程优先级详解》文章介绍了操作系统中进程的状态,包括运行状态、阻塞状态和挂起状态,并详细解释了Linux下进程的具体状态及其管理,此外,文章还讨论了进程的优先级、查看和修改进... 目录一、操作系统的进程状态1.1运行状态1.2阻塞状态1.3挂起二、linux下具体的状态三、进程的