在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)
命令示例:
1 查看硬件时钟
2014年03月27日 星期四 11时03分50秒 -0328520 seconds
[root@localhost ~]# hwclock -r
2014年03月27日 星期四 11时03分53秒 -0797264 seconds
[root@localhost ~]# hwclock --show
2014年03月27日 星期四 11时04分01秒 -0672267 seconds
2 clock与hwclock相同
[root@localhost ~]# type -a hwclock
hwclock is /sbin/hwclock
hwclock is /usr/sbin/hwclock
[root@localhost ~]# ll /sbin/hwclock /usr/sbin/hwclock
-rwxr-xr-x 1 root root 46940 11月 22 23:27 /sbin/hwclock
lrwxrwxrwx 1 root root 18 3月 26 19:27 /usr/sbin/hwclock -> //sbin/hwclock
[root@localhost ~]# type -a clock
clock is /sbin/clock
[root@localhost ~]# ll /sbin/clock
lrwxrwxrwx 1 root root 7 3月 26 19:27 /sbin/clock -> hwclock
3 同步系统时间到硬件时钟
[root@localhost ~]# hwclock2014年03月27日 星期四 18时50分51秒 -0312960 seconds
[root@localhost ~]# date
2014年 03月 27日 星期四 10:50:55 CST
[root@localhost ~]# hwclock -w
[root@localhost ~]# hwclock2014年03月27日 星期四 10时51分15秒 -0875387 seconds
同步网络时间到系统时间
[root@localhost ~]# ntpdate 210721454427 Mar 11:11:24 ntpdate[4766]: adjust time server 2107214544 offset 0011401 sec
2107214544 (中国西安授时中心的官方时间同步服务器IP域名)
同步网络时间到系统时间后,就可以用hwclock -w将系统时间同步到硬件时间。
修改时区
可能部分系统在执行以上两步后,在重启后仍然失效,所以需要进行时区修改。
[root@localhost ~]# tzselect #按照提示进行选择时区
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改系统时间配置文件
[root@localhost ~]# /etc/sysconfig/clock
#打开clock文件,将相关内容改成以下内容
UTC=false
ARC=false
ZONE="Asia/Shanghai"
重启系统
[root@localhost ~]# reboot
Linux自带了ntp服务 -- /etc/initd/ntpd,这个服务不仅可以设置让本机和某台/某些机器做时间同步,他本身还可以扮演一个time server的角色,让其他机器和他同步时间。
配置文件就是/etc/ntpconf。
为了测试,设置让node2 -- 1921681102和node1 -- 1921681101做时间同步。
第一步,
node1做time server,node1本身不和其他机器时间同步,就是取本地时间。
所以,先把node1机器的时间调准了:
[root@node1 ~]date -s 08/03/2011
[root@node1 ~]date -s 11:12:00
[root@node1 ~]clock -w
[root@node1 ~]hwclock --systohc
后两个命令是把设置的时间写到硬件时间中去(也就是CMOS里面的时间)。
第二步,
然后将node1配置成一个time server,修改/etc/ntpconf,
[root@node1 ~]vi /etc/ntpconf
其他的配置不怎么需要改,只需要关注restrict的配置:
1 注释掉原来的restrict default ignore这一行,这一行本身是不响应任何的ntp更新请求,其实也就是禁用了本机的ntp server的功能,所以需要注释掉。
2 加入:restrict 19216810 mask 2552552550 -- 让19216810/24网段上的机器能和本机做时间同步
3 这样就可以了,记得下面的:
server 12712710 # local clock
fudge 12712710 stratum 10
这两行需要,这是让本机的ntpd和本地硬件时间同步。
当然,我们也可以添加server xxxxxxxxxxxx,让他和其他的time server时间同步。
4 /etc/initd/ntpd restart
5 chkconfig ntpd on
6 修改iptables配置,将tcp和udp 123端口开放,这是ntp需要的端口,在/etc/services中可以查到这个端口。
第三步,
这样node1就成为一台time server了,现在我们配置node2这台机器,也是修改/etc/ntpconf ,
[root@node2 ~]vi /etc/ntpconf
1 restrict default ignore这行保留为注释状态,因为sales不需要做time server
2 注释掉server 12712710, fudge 12712710 stratum 10这两行,因为这台机器不需要和本地硬件时钟同步了。
3 加入server 1921681101这行,和node1机器同步。
这样就OK了。看看时间,已经和node1同步了。往后默认配置好像是5分钟和time server同步一次。ntpdate命令是显式的和某台机器做时间同步,以前将ntpdate放到crontab中定期同步也是可以的,但是既然ntpd本身就可以做这个时间
第四步,将ntpdate放到crontab中定期步也是可以的
[root@node2 ~]#vi ntpupdatesh
/usr/sbin/ntpdate 1921681101
[root@node2 ~]#chmod 755 ntpupdatesh
[root@node2 ~]#crontab -e
/1 /root/ntpupdatesh
[root@node2 ~]#/etc/initd/crond restart
1、首先打开手机网络检查网络。
2、其次打开手机进行测试网络连接是否异常。
3、最后点击刷新重新进入即可。
由于移动云管理平台需要与云之家、云企业平台等其他平台进行数据交互,为避免由于 *** 作系统时间异常而关联引发其他未知的错误,如云之家待办消息推送失败等,因此在移动云管理平台保存设置时,会强制对当前服务器的 *** 作系统时间的正确性进行检查,包含年、月、日、时、分。
建议设置服务器的 *** 作系统时间与Internet时间服务器同步,或根据正确的北京时间手工调整 *** 作系统时间,且时间差在1分钟以内。
注意手工修改后务必观察一段时间,确保设置不会自动被还原,如出现自动还原的情况,建议与客户的IT部门联系,检查是否受客户网络环境下策略设置的影响。本人也不是很懂,估计是双系统引起的时间同步问题。以下资料来源于网络。
Linux和Windows双系统会出现这种情况。这是因为Windows系统默认读取主板bios等硬件系统时间作为OS的当地时间;而MAc,Linux类的OS以主板bios等硬件系统时间作为UTC时间,然后 *** 作系统的时间以UTC为标准按照使用者的时区设置加加减减。这就造成了中国用户会出现一个很有趣的现象:Ubuntu上的时间会比windows上的快8小时。
1关闭UTC;所用命令:
sudo gedit etc/default/rcS
注意“rcS”,S大写;在所显示的内容中将“UTC=yes”改为"UTC=no"
2这时时间仍旧是显示原有的“快”时间,你可以采用网络时间服务器来校正;
sudo ntpdate poolntporg
3可以考虑把矫正后的时间写入硬件系统,命令
hw clock第一:单击电脑右下面时间的图标
第二:单击“更改日期和时间设置”
第三:单击“Internet时间”,然后单击“更改设置”
最后,按如图所示,单击“立即更新”之后点击“确定”。可能出于一些原因你需要手动修改自己电脑的时间日期设置,在用完之后该如何快速的恢复到原来的正确时间,而不影响你的正常使用呢,这时要设置电脑时间自动同步网络internet时间。
1、点击桌面右下角的时间,在d出框内点击更改日期时间设置。
2、在d出框内选择Internet选项。
3、点击更改设置,要同步Internet时间的前置条件是得启动你windows time服务,下面会介绍到如何启动windows的时间服务。如果windows时间服务已启动直接在d出框点立即更新即可。
4、找到我的电脑,右键在d出选项框中选择管理,会出现计算机管理页面。
5、找到最下面的服务和应用程序单击那个小三角,在展开选项中选择服务,会出现windows的服务列表。
6、在列表中找到windows Time服务,选中之后在又上角会显示启动服务的按钮,点击启动。
7、启动之后关于此服务右上角的 *** 作按钮会变为停止或重新启动,如此你的电脑时间会自动跟网络同步。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)