在Windwos中,系统时间的设置很简单,界面操作,通俗易懂,而且设置后,重启,关机都没关系。系统时间会自动保存在BIOS时钟里面,启动计算机的时候,系统会自动在BIOS里面取硬件时间,以保证时间的不间断。但在Linux下,默认情况下,系统时间和硬件时间并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠BIOS电池来维持,而系统时间,是用CPU Tick来维持的。在系统开机的时候,会自动从BIOS中取得硬件时间,设置为系统时间。

1. Linux系统时间的设置

在Linux中设置系统时间,可以用date命令:

复制代码
1 //查看时间
2 [root@node1 ~]# date
3 Tue Feb 25 20:15:18 CST 2014
4 //修改时间
5 [root@node1 ~]# date -s “20140225 20:16:00” #yyyymmdd hh:mm:ss
6 Tue Feb 25 20:16:00 CST 2014
7 //date 有多种时间格式可接受,查看date –help
复制代码

2. Linux硬件时间的设置

硬件时间的设置,可以用hwclock或者clock命令。两者基本相同,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。

复制代码
1 //查看硬件时间可以是用hwclock ,hwclock –show 或者 hwclock -r
2 [root@node1 ~]# hwclock –show
3 Tue 25 Feb 2014 08:21:14 PM CST -0.327068 seconds
4 //设置硬件时间
5 [root@node1 ~]# hwclock –set –date “20140225 20:23:00”
6 [root@node1 ~]# hwclock
7 Tue 25 Feb 2014 08:23:04 PM CST -0.750440 seconds
复制代码

3. 系统时间和硬件时间的同步

同步系统时间和硬件时间,可以使用hwclock命令。

复制代码
1 //以系统时间为基准,修改硬件时间
2 [root@node1 ~]# hwclock –systohc <== sys(系统时间)to(写到)hc(Hard Clock)
3 //或者
4 [root@node1 ~]# hwclock -w
5 //以硬件时间为基准,修改系统时间
6 [root@node1 ~]# hwclock –hctosys
7 //或者
8 [root@node1 ~]# hwclock -s
复制代码

4. 不同机器之间的时间同步

为了避免主机时间因为长期运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务器来同步不同机器的时间。一台机器,可以同时是ntp服务端和ntp客户端。在生产系统中,推荐使用像DNS服务器一样分层的时间服务器来同步时间。

不同机器间同步时间,可以使用ntpdate命令,也可以使用ntpd服务。

4.1 ntpdate命令
使用ntpdate比较简单。格式如下:

1 [root@node1 ~]# ntpdate [NTP IP/hostname]
2 [root@node1 ~]# ntpdate 192.168.0.1
3 [root@node1 ~]# ntpdate time.ntp.org
但这样的同步,只是强制性的将系统时间设置为ntp服务器时间。如果CPU Tick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置。比如,在crontab中添加:

0 12 * * * /usr/sbin/ntpdate 192.168.0.1
这样,会在每天的12点整,同步一次时间。ntp服务器为192.168.0.1。

或者将下列脚本添加到/etc/cron.hourly/,这样就每小时会执行一次同步:

来源

https://www.cnblogs.com/ibnode/p/3573302.html?share_token=60ED59AB-F91E-4CA2-8217-1D307506799D&tt_from=mobile_qq&utm_source=mobile_qq&utm_medium=toutiao_ios&utm_campaign=client_share

文档更新时间: 2022-07-20 21:36   作者:admin