Linux系统时间和硬件时间设置
在linux系统中有两个时间,硬件时钟和系统时间,硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。
用date命令对系统时间进行设置后,并不会去修改硬件时钟,所以系统重启后,系统时间还算会去读取硬件时间,这就是为何date设置失效到原因。
因此,需要在设置系统时间后,将系统时间同步到硬件时钟。
clock/hwclock:
显示与设定硬件时钟(query and set the hardware clock (RTC)),两个命令相同。RTC=Real Time Clock,也就是硬件时钟。
命令参数:
-r, --show 读取并打印硬件时钟(read hardware clock and print result)
-s, --hctosys 将硬件时钟同步到系统时钟(set the system time from the hardware clock)
-w, --systohc 将系统时钟同步到硬件时钟(set the hardware clock to the current system time)
命令示例:
date 显示是当前系统时间
修改系统时间
Linux系统时间日期手动修改(1)
查看当前时间 # date
修改时间命令 # date –s 12:12:00
修改日期命令 # date –s 01/12/2008
[root@node1 ~]# hwclock -r 2016年04月24日 星期日 13时51分01秒 -0.880312 seconds [root@node1 ~]# date 2016年 04月 22日 星期五 21:21:29 CST
(2)同步系统时间到硬件时钟
root@node2 ~]# date #显示当前的系统时间 2016年 04月 24日 星期日 23:15:59 CST [root@node2 ~]# hwclock -r #显示当前的硬件时间 2016年04月24日 星期日 14时05分47秒 -0.845293 seconds [root@node2 ~]# hwclock -w #将系统时间同步到硬件时钟(系统时间作为硬件时间) [root@node2 ~]# hwclock -r #再次显示硬件时间 2016年04月24日 星期日 23时16分42秒 -0.956500 seconds [root@node2 ~]# date #再次显示系统时间 2016年 04月 24日 星期日 23:16:48 CST
(3)将硬件时间作为系统时间
[root@node1 ~]# hwclock -r #显示硬件时间 2016年04月24日 星期日 14时14分56秒 -0.690487 seconds [root@node1 ~]# date #显示系统时间 2016年 04月 24日 星期日 14:14:59 CST #将硬件时间作为系统时间 [root@node1 ~]# hwclock -s [root@node1 ~]# hwclock -r #再次显示硬件时间 da2016年04月24日 星期日 14时15分21秒 -0.785729 seconds [root@node1 ~]# date #再次显示系统时间 2016年 04月 24日 星期日 14:15:22 CST
(3)将系统时间同步至网络时间
同步命令
# ntpdate ntp服务器域名或IP
例如:# ntpdate 1.cn.pool.ntp.org
http://www.pool.ntp.org是NTP的官方网站,在这上面我们可以找到离我们国家的NTP Server cn.pool.ntp.org.它有3个服务器地址:
服务器一: 1.cn.pool.ntp.org
服务器二: 2.asia.pool.ntp.org
服务器三: 3.asia.pool.ntp.org
(直接用域名有时有问题,可以先Ping出他们的IP,然后用IP地址同步)
自动运行同步时间脚本设定
# crontab –e
添加脚本例子如下:
*/20 * * * * /usr/sbin/ntpdate 210.72.145.44 //每20分钟执行一次 或者下面的
30 5 * * * /usr/sbin/ntpdate 210.72.145.44 //每天早晨5点半执行。
[root@node1 ~]# ntpdate 1.cn.pool.ntp.org 24 Apr 23:34:45 ntpdate[11827]: step time server 202.118.1.81 offset 33031.663763 sec [root@node1 ~]# date 2016年 04月 24日 星期日 23:34:49 CST
(4)本地主机可以安装ntp服务,作为一个独立时间同步服务器
RedHat服务器可以下载rpm安装包,然后执行
# rpm -ivh ntp-4.2.0.a.20040617-4.x86_64.rpm 或 # yum -y install ntp.x86_64
参考博客:
Linux系统时间和硬件时间设置:http://www.linuxidc.com/Linux/2014-09/107029.htm
Linux下NTP服务器(时间同步及时区相关问题):http://gaoxingf.blog.51cto.com/612518/121959