在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
(2)同步系统时间到硬件时钟
(3)将硬件时间作为系统时间
(3)将系统时间同步至网络时间
同步命令
# ntpdate ntp服务器域名或IP
例如:# ntpdate 1.cn.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点半执行。
(4)本地主机可以安装ntp服务,作为一个独立时间同步服务器
RedHat服务器可以下载rpm安装包,然后执行
# rpm -ivh ntp-4.2.0.a.20040617-4.x86_64.rpm 或 # yum -y install ntp.x86_64
参考博客:
Linux系统时间和硬件时间设置:
Linux下NTP服务器(时间同步及时区相关问题):