linux时间是如何自动同步的

Linux时钟的分类

  Windows 时钟大家可能十分熟悉了,Linux时钟在概念上类似Windows时钟显示当前系统时间,但在时钟分类和设置上却和Windows大相径庭。和 Windows不同的是,Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的“Standard BIOS Feture”项中进行设置。

  既然Linux有两个时钟系统,那么大家所使用的Linux默认使用哪种时钟系统呢?会不回出现两种系统时钟冲突的情况呢?这些疑问和担心不无道理。首先,Linux并没有默认哪个时钟系统。当Linux启动时,系统时钟会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。

  从Linux启动过程来看,系统时钟和硬件时钟不会发生冲突,但Linux中的所有命令 (包括函数)都是采用的系统时钟设置。不仅如此,系统时钟和硬件时钟还可以采用异步方式,即系统时间和硬件时间可以不同。这样做的好处对于普通用户意义不大,但对于Linux网络管理员却有很大的用处。例如,要将一个很大的网络中(跨越若干时区)的服务器同步,假如位于美国纽约的Linux服务器和北京的Linux服务器,其中一台服务器无须改变硬件时钟而只需临时设置一个系统时间,如要将北京服务器上的时间设置为纽约时间,两台服务器完成文件的同步后,再与原来的时钟同步一下即可。这样系统和硬件时钟就提供了更为灵活的操作。

设置Linux的时钟

  在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。由于目前绝大多数用户使用x86硬件体系,所以可以视这两个命令为一个命令来学习。

  1.在虚拟终端中使用date命令来查看和设置系统时间(有的命令权限不够,加sudo

  查看系统时钟的操作:

  # date

  设置系统时钟的操作:

  ~$ sudo date 060611172012.30
       2012年 06月 06日 星期三 11:17:30 CST

  通用的设置格式:

  # date 月日时分年.秒

  2.使用hwclock或clock命令查看和设置硬件时钟

  查看硬件时钟的操作:

  # hwclock --show 或

  # clock --show

  2012年06月06日 星期三 11时15分33秒  -0.156685 seconds

  设置硬件时钟的操作:

  # hwclock --set --date="06/06/2012 11:16:00"

  或者

  # clock --set --date="06/06/2012 11:16:00"

  通用的设置格式:hwclock/clock --set --date=“月/日/年 时:分:秒”。

3.同步系统时钟和硬件时钟

  Linux系统默认重启后,硬件时钟和系统时钟同步。使用clock或hwclock命令来同步系统时钟和硬件时钟。

  硬件时钟与系统时钟同步:

  # hwclock --hctosys

  或者

  # clock --hctosys

  上面命令中,--hctosys表示Hardware Clock to SYStem clock。

  系统时钟和硬件时钟同步:

  # hwclock --systohc

  或者

  # clock --systohc

  使用图形化系统设置工具设置时间

4,主机与时间服务器之间的时间同步

时间同步要靠ntp服务器,主机和ntp服务器之间通过NTP协议通信,按照一定的算法更新本地时间,从而同步。

国内可用的NTP服务器:
ntp.sjtu.edu.cn (上海交通大学网络中心NTP服务器地址)202.120.2.101 (上海交通大学网络中心NTP服务器地址)

另一个服务器的网址pool.ntp

# ntpq -p    可以查看自己机器上当前的同步服务器

我的机器上的:

   remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+218.75.4.130    204.152.184.72   2 u   59   64  373  141.538  -33.392  20.076
+61.153.197.226  66.220.9.122     2 u   64   64  373  137.189    3.085  19.495
*2001:da8:9000:: 202.112.31.197   2 u    6   64  377    5.739   32.022  11.182
 europium.canoni .INIT.          16 u    -  128    0    0.000    0.000   0.000


参考: 鸟哥的私房菜

你可能感兴趣的:(linux时间是如何自动同步的)