linux系统硬件时间和系统时间

linux系统硬件时间和系统时间,第1张

在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

系统时间和硬件时间可以不同,好处对于普通用户意义不大,但对于Linux网络管理员却有很大的用处。例如,要将一个很大的网络中(跨越若干时区)的服务器同步,假如位于美国纽约的Linux服务器和北京的Linux服务器,其中一台服务器无须改变硬件时钟而只需临时设置一个系统时间,如要将北京服务器上的时间设置为纽约时间,两台服务器完成文件的同步后,再与原来的时钟同步一下即可。这样系统和硬件时钟就提供了更为灵活的 *** 作。

安装云之家后电脑时间不对了,可能是网络问题。网络问题是自身设备连接的网络出现较大波动,导致云之家手机和电脑不同步,更换网络重新打开即可。
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、启动之后关于此服务右上角的 *** 作按钮会变为停止或重新启动,如此你的电脑时间会自动跟网络同步。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13126001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-05
下一篇 2023-06-05

发表评论

登录后才能评论

评论列表(0条)

保存