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