系统时钟 硬件时钟 系统时间 硬件时间 ntpd ntpdate

在Linux下,默认情况下,系统时间和硬件时间,并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠Bios电池来维持,而系统时间,是用CPU tick来维持的,相互独立。

在系统开机的时候,会自动从Bios中取得硬件时间,设置为系统时间。

ntpd:平滑矫正时间,起初64秒矫正一次,后续逐步减少。且有保护功能,与源时间服务器差异过大,会停止矫正。

ntpdate:跃变方式矫正时间,对时序依赖严重的应用程序,如数据库,可能会出现2次相同的时间点,会造成不可预知的错误。

ntpd、ntpdate的区别

使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。ntpd不仅仅是时间同步服务器,他还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。

时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,这有几个非常明显的问题:

第一,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。

因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。

时间: 2024-08-28 20:01:32

系统时钟 硬件时钟 系统时间 硬件时间 ntpd ntpdate的相关文章

Linux系统时间\硬件时间(date、tzselect、clock、hwclock、ntpdate)

1.系统时间和硬件时间 在Linux中有硬件时钟与系统时钟两种时钟.硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟.系统时钟则是指kernel中的时钟.所有Linux相关指令与函数都是读取系统时钟的设定.因为存在两种不同的时钟,那么它们之间就会存在差异.当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作. 用date命令对系统时间进行设置后,并不会去修改硬件时钟,所以系统重启后,系统时间还算会去读取硬件时间,这就是为何date设置失效到原因. 因此,

linux系统时间同步,硬件时钟和系统时间同步,时区的设置

1.时间同步(手动): date -s "2015-07-15 22:13:30" hwclock --systohc   (表示系统时间同步到硬件时钟) hwclock --hctosys (表示硬件时钟同步到系统时间) 2.根据互联网时间同步: 首先查看linux是否有ntp这个软件: rpm -qa | grep ntp 如果没安装继续查找: yum search ntp 然后通过上面查找的信息提示来安装这个ntp: yum install ntp.i386 完成安装后:输入nt

Linux下系统与硬件时钟管理

在无NTP而又处在私网的情况下.所以有效的保证时间的正确性其实可以使用此种方案来保证时间的准确性 1.系统日期时间设定 [[email protected] ~]# date -s "2014-11-27 21:50:00" 设置当前时间与日期Thu Nov 27 21:50:00 EST 2014 2.硬件时钟日期与时间设定 [[email protected] /]# hwclock --set --date="2014-11-27 21:50:00" 3.系统

Linux硬件时钟和系统时钟设置

Linux时钟分为系统时钟(System Clock)和硬件时钟(Real Time Clock,简称RTC).系统时钟是指当前Linux Kernel中的时钟:而硬件时钟则是主板上由电池供电的时钟,硬件时钟可以在BIOS中进行设置.当Linux启动时,系统时钟会去读取硬件时钟的设置,然后系统时钟就会独立于硬件时钟运作. Linux关于时间的设置的shell命令有date和hwclock两种: 嵌入式s3c6410 ARM开发板中Linux时间设置: 1. date  -- 用来读取或设置系统时

Linux系统时钟和硬件时钟

Linux 系统有两个时钟,一个是由主板电池驱动的硬件时钟(Real Time Clock),也叫做RTC或者CMOS时钟.当操作系统关机时候,用这个来记录时间,但是对于运行的系统是不用这个时间的:另一个时间是系统时钟(system clock)也叫内核时钟或者软件时钟,是由软件根据时间中断来进行计数的,内核时钟在系统关机的情况下是不存在的,所以当操作系统启动时候,内核时钟是要读取RTC时间来进行时间同步.并且在系统关机的时候讲系统写回RTC中进行同步. 查看系统时间date 查看硬件时间:hw

Linux下时区/系统时间/硬件时间的设置

先简述下时区/系统时间/硬件时间的3个主要命令吧 tzselect #tzselect命令主要针对时区设置和查看 #tz=timezone的缩写,直译=时区 date #date命令主要针对系统时间的设置和查看 #date直译,总是让人以为只是针对日期的设置,这是错滴...别被忽悠了 hwclock #hwclock命令主要针对硬件时间的设置和查看 #hw=hardware,直译=硬件 #这里需要注意的是,一般执行需要加sudo 具体应用,后面慢慢来

Linux 指令篇:设定硬件时钟--hwclock

功能说明:显示与设定硬件时钟. 语 法:hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test] [--utc][--version][--set --date=<日期与时间>] 补充说明:在Linux中有硬件时钟与系统时钟等两种时钟.硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟.系统时钟则是指kernel中的时钟.当Linux启动时,系统时钟会去读取硬件时钟的设定,之后

RTC硬件时钟设置修改【转】

转自:http://os.chinaunix.net/a2008/0526/981/000000981211.shtml 这两天一直在做i2c设备驱动的理解,所以很少更新文章. 由于对于表计来说,RTC硬件时钟是非常重要的,并且其精度设计要求是比较高的,在busybox中,可以通过date命令设置当前的系统时间,然后通过hwclock将当前的系统时间写入硬件时钟中,但是busybox的date命令有一个缺陷,就是不能精确到秒,这是我们设计中所不能忍受的,这里我们感觉到源码开放对于我们来说是多么的

FPGA基础知识6(FPGA时钟系统及多时钟系统处理)

需求说明:FPGA基本知识 内容       :第一部分  FPGA各个时钟说明 第二部分  FPGA时钟总结 第三部分  异步时钟同步化及门控时钟 来自       :时间的诗 第一部分  FPGA各个时钟说明 来自:http://blog.chinaunix.net/uid-7547035-id-60220.html 1.         FPGA的全局时钟是什么? FPGA的全局时钟应该是从晶振分出来的,最原始的频率.其他需要的各种频率都是在这个基础上利用PLL或者其他分频手段得到的. 2

我使用过的Linux命令之hwclock - 查询和设置硬件时钟

hwclock命令,与clock命令是同一个命令,主要用来查询和设置硬件时钟(query and set the hardware clock (RTC)).RTC=Real Time Clock,也就是硬件时钟.在Linux中有硬件时钟与系统时钟等两种时钟.硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟.系统时钟则是指kernel中 的时钟.所有Linux相关指令与函数都是读取系统时钟的设定.因为存在两种不同的时钟,那么它们之间就会存在差异.根据不同参数设置,hwcloc