linux下使用date、hwclock和clock命令显示和设定时钟
linux将时钟分为系统时钟(System Clock)和硬件时钟(Real Time Clock )两种。系统时间指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的“Standard BIOS Feture”项中进行设置。当linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作,因此系统时钟和硬件时钟可以采用异步方式,即系统时间和硬件时间可以不同。从linux启动过程来看,系统时钟和硬件时钟不会发生冲突,但linux中的所有命令都是采用的系统时钟设置。
在linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。date显示与设定系统时钟,hwclock和clock用来显示与设定硬件时钟,不过hwclock和clock可以视为一个命令。
1 # type -a hwclock 2 hwclock is /sbin/hwclock 3 hwclock is /usr/sbin/hwclock 4 # type -a clock 5 clock is /sbin/clock 6 # ls -l /sbin/clock 7 lrwxrwxrwx. 1 root root 7 12月 13 2013 /sbin/clock -> hwclock
下面就分别举例说明date、hwclock(clock)的使用。
一、显示与设定系统时钟
1 # date \\显示系统时间 2 2015年 04月 11日 星期六 21:12:59 CST 3 # date -s '2015-04-11 13:15:15' \\修改系统时间 4 2015年 04月 11日 星期六 13:15:15 CST 5 6 \\也可通过下面的方法设置系统时间 7 # date 041120252015.15 \\月日时分年.秒 8 2015年 04月 11日 星期六 20:25:15 CST
二、显示与设定硬件时钟
1 \\显示硬件时钟下面三条命令相同 2 # hwclock 3 2000年04月11日 星期二 13时24分35秒 -0.109687 seconds 4 # hwclock -r 5 2000年04月11日 星期二 13时24分43秒 -0.359613 seconds 6 # hwclock --show 7 2000年04月11日 星期二 13时24分49秒 -1.051616 seconds 8 9 \\设置硬件时钟 10 # hwclock --set --date '2015-04-11 13:36:11' 11 # hwclock --show 12 2015年04月11日 星期六 13时36分16秒 -0.797103 seconds
三、时钟同步,前面说过系统时钟和硬件时钟是异步,可以不相同。但是有时需要使两者同步。
\\将系统时钟同步到硬件时钟 \\方法1 clock -w # date 2015年 04月 11日 星期六 20:36:26 CST # clock 2015年04月11日 星期六 13时41分18秒 -0.437760 seconds # clock -w \\将系统时钟同步到硬件时钟 # clock 2015年04月11日 星期六 20时37分36秒 -0.515922 seconds \\方法2 clock --systohc # clock --set --date="08/16/2013 13:26:00" # clock 2013年08月16日 星期五 13时26分04秒 -0.390867 seconds # date 2015年 04月 11日 星期六 20:41:13 CST # clock --systohc # clock 2015年04月11日 星期六 20时43分18秒 -0.094007 seconds \\将硬件时钟同步到系统时钟 # clock --set --date="08/16/2013 13:26:00" # clock 2013年08月16日 星期五 13时26分03秒 -0.281525 seconds # date 2015年 04月 11日 星期六 20:45:14 CST # clock --hctosys \\时钟同步 # date 2013年 08月 16日 星期五 13:26:22 CST # clock 2013年08月16日 星期五 13时26分25秒 -0.406511 seconds
最后,我们把系统时钟与网络时钟同步,再同步到硬件时钟
1 # ntpdate 0.rhel.pool.ntp.org 2 11 Apr 13:48:03 ntpdate[5786]: step time server 202.112.29.82 offset 52100210.175926 sec 3 # date 4 2015年 04月 11日 星期六 13:48:14 CST 5 # clock -w 6 # clock 7 2015年04月11日 星期六 13时48分30秒 -0.750266 seconds