hwclock命令参数及用法详解--Linux显示设置硬件时钟命令

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

hwclock命令参数及⽤法详解--Linux显⽰设置硬件时钟命令
hwclock(hardware clock)
功能说明:显⽰与设定硬件时钟。

语 法:hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]
[--utc][--version][--set --date=<⽇期与时间>]
补充说明:在Linux中有硬件时钟与系统时钟等两种时钟。

硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画⾯设定的时钟。

系统时钟则是指kernel中的时钟。

当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独⽴运作。

所有Linux相关指令与函数都是读取系统时钟的设定。

参 数:
--adjust hwclock每次更改硬件时钟时,都会记录在/etc/adjtime⽂件中。

使⽤--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并⽤来校正⽬前的硬件时钟。

--debug 显⽰hwclock执⾏时详细的信息。

--directisa hwclock预设从/dev/rtc设备来存取硬件时钟。

若⽆法存取时,可⽤此参数直接以I/O指令来存取硬件时钟。

--hctosys 将系统时钟调整为与⽬前的硬件时钟⼀致。

--set --date=<⽇期与时间> 设定硬件时钟。

--show 显⽰硬件时钟的时间与⽇期。

--systohc 将硬件时钟调整为与⽬前的系统时钟⼀致。

--test 仅测试程序,⽽不会实际更改硬件时钟。

--utc 若要使⽤格林威治时间,请加⼊此参数,hwclock会执⾏转换的⼯作。

--version 显⽰版本信息。

使⽤⽰例
⽰例⼀ hwclock命令与clock命令是⼀个东西
[~]# type -a hwclock
hwclock is /sbin/hwclock
hwclock is /usr/sbin/hwclock
[~]# ls -l /sbin/hwclock /usr/sbin/hwclock
-rwxr-xr-x 1 root root 34096 2012-01-07 /sbin/hwclock
lrwxrwxrwx 1 root root 18 08-13 00:14 /usr/sbin/hwclock -> ../../sbin/hwclock
[~]# type -a clock
clock is /sbin/clock
[~]# ls -l /sbin/clock
lrwxrwxrwx 1 root root 7 08-13 00:14 /sbin/clock -> hwclock
[~]#
⽰例⼆显⽰硬件时钟
[~]# hwclock
2011年11⽉06⽇星期⽇ 21时09分28秒 -0.134840 seconds
[~]# hwclock -r
2011年11⽉06⽇星期⽇ 21时09分33秒 -0.469123 seconds
[~]# hwclock --show
2011年11⽉06⽇星期⽇ 21时09分45秒 -0.127548 seconds
[~]#
⽰例三修改⽇期并同步到硬件时钟
[~]# date
2011年 11⽉ 06⽇星期⽇ 21:11:57 CST
[~]# date 11062112 <== 格式 mmddHHMM,即⽉⽇时分
2011年 11⽉ 06⽇星期⽇ 21:12:00 CST
[~]# hwclock -w
[~]# hwclock
2011年11⽉06⽇星期⽇ 21时12分13秒 -0.648818 seconds
[~]#
注:要使系统时间准确,最好还是使⽤ntp⽅式。

⽰例四使⽤ntpdate命令从⽹络同步时间,再同步到硬件时钟
ntpdate命令是使⽤NTP协议来从⽹络同步时间的命令。

NTP=Network Time Protocol ⽹络时间协议。

[~]# ntpdate
6 Nov 21:17:55 ntpdate[4829]: step time server 123.146.124.28 offset -1.025258 sec
[~]# date
2011年 11⽉ 06⽇星期⽇ 21:17:59 CST
[~]# hwclock -w
扩展阅读⼀:hwclock 使⽤
Linux机器上的时间⽐较复杂,有各式各样的时钟和选项等等。

⼀:
机器⾥有两个时钟:硬件时钟和系统时钟
硬件时钟从根本上讲是CMOS时钟;
系统时钟是由内核维护的,它是从1969年末(即传说中的标志Unix时代开端的那个拂晓)开始算起的累积秒数。

在DOS或Mac系统中,起作⽤的是硬件时钟。

遗憾的是,你可能已经发现了,绝⼤多数电脑时钟都是很不准确的。

它们从根本上讲是由⼩型电池供电的警报器时钟,这种锂电池⼀般可持续供电三年左右,那时候你系统各⼤块差不多都已经过时了。

⽽在Linux系统中,起作⽤的是系统时钟。

在启动时,它靠读取硬件时钟获得计时起点,⽽不是靠记忆计时。

你可以通过BIOS修改系统硬件时钟,或者如果你不想重起机器,那就⽤hwclock命令。

当你使⽤hwclock命令调整硬件时间很多次以后,hwclock就会获取你的时钟推移速率,然后就会把这个信息存在/etc/adjtime⾥边。

以后,你就可以⽤它来随时更新你的硬件时间,⽤⼀条下⾯的命令:
hwclock --adjust
硬件时钟通常被设置成全球标准时间(UTC),⽽将时区信息保存在/usr/share/lib/timezone (或者在某些系统中可能
是/usr/local/timezone)⽬录下某个适当的⽂件中,然后⽤⼀个符号链接⽂件/etc/localtime指向它。

查看硬件时钟⽤命令:
hwclock --show 或者 hwclock -r
重置硬件时钟⽤:
#date 042817252009.00 //设置系统时钟 2009 年 04 ⽉ 28 ⽇星期四 17:25:00 CST
#hwclock -w
如果需要修改你的时区信息,可以使⽤tzset命令,如果你系统中没有这条命令,那可以⽤类似下⾯的操作:
ln -s /etc/localtime /usr/share/zoneinfo/US/Pacific
⼆:
实例:
板⼦上电
#date 042817252009.00 //设置系统时钟 2009 年 04 ⽉ 28 ⽇星期四 17:25:00 CST
#hwclock -w //将系统时钟写⼊硬件时钟
#hwclock -r //看时间是否在变化
如果没有出错,就已经把2009 年 04 ⽉ 28 ⽇星期四 17:25:00 CST 写⼊RTC chip了
为了使系统时间和RTC时间同步,可以在初始化⽂件中添加命令
hwclock –s
使每次开机时读取RTC时间,并同步给系统时间。

在根⽂件系统:usr/etc/rc.local中添加
/sbin/hwclock -s
断电
等2分钟在上电
#hwclock -r //看时间是否同步,即使与2分钟后的时间相同
扩展阅读⼆:linux中时间设置date、hwclock、clock
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中,⽤于时钟查看和设置的命令主要有date、hwclock和clock。

其中,clock和hwclock⽤法相近,只不过clock命令除了⽀持x86硬
件体系外,还⽀持Alpha硬件体系。

由于⽬前绝⼤多数⽤户使⽤x86硬件体系,所以可以视这两个命令为⼀个命令来学习。

1.在虚拟终端中使⽤date命令来查看和设置系统时间
查看系统时钟的操作:
# date
设置系统时钟的操作:
# date 0917********.30
通⽤的设置格式:
# date ⽉⽇时分年.秒
2.使⽤hwclock或clock命令查看和设置硬件时钟
查看硬件时钟的操作:
# hwclock --show 或
# clock --show
2003年09⽉17⽇星期三 13时24分11秒 -0.482735 seconds
设置硬件时钟的操作:
# hwclock --set --date="09/17/2003 13:26:00"
或者
# clock --set --date="09/17/2003 13:26:00"
通⽤的设置格式:hwclock/clock --set --date=“⽉/⽇/年时:分:秒”。

3.同步系统时钟和硬件时钟
Linux系统(笔者使⽤的是Red Hat 8.0,其它系统没有做过实验)默认重启后,硬件时钟和系统时钟同步。

如果不⼤⽅便重新启动的话(服务器通常很少重启),使⽤clock或hwclock命令来同步系统时钟和硬件时钟。

硬件时钟与系统时钟同步:
# hwclock --hctosys
或者
# clock --hctosys
上⾯命令中,--hctosys表⽰Hardware Clock to SYStem clock。

系统时钟和硬件时钟同步:
# hwclock --systohc
或者
# clock --systohc。

相关文档
最新文档