Linux时间设置修改和日期查询

关于系统时间和硬件时间

linux系统时钟有两个,一个是硬件时钟,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时钟,是linux系统Kernel时间。当Linux启动时,系统Kernel会去读取硬件时钟的设置,然后系统时钟就会独立于硬件运作。有时我们会发现系统时钟和硬件时钟不一致,因此需要执行时间同步,下面就分享一下时间设置及时钟同步的命令使用方法。

系统时间:

查看
#date
查看当天和3天前的日期,按照格式"YYYY-MM-DD hh:mm:ss"
#date “+%Y-%m-%d %H:%M:%S”
#date “+%T %F”
#date -d “-3 day” “+%Y-%m-%d %H:%M:%S”
#date -d “-3 days” “+%T %F”

将时间设置为2020年4月18日12点11分39秒
#date -s “041812112020.39”–>((MMDDhhmmYYYY.ss)X错误写法)
#date -s “04/18/2020 12:11:39”(√正确)
date命令将日期设置为2020年5月10日
#date -s “05/10/2020”(注意:只设置日期,时间默认会从0点0分0秒开始计时)
date命令将日期设置为14点20分35秒
#date -s “14:20:35”

硬件时间:

查看系统硬件时钟:
#clock --show
或#hwclocl --show

设置硬件时间
#clock --set --date=“04/18/2020 16:21” (月/日/年 时:分:秒)
或#hwclock --set --date=“04/18/2020 16:21” (月/日/年 时:分:秒)

系统时间同步:

其中:hc代表硬件时间,sys代表系统时间。
1.硬件时间和系统时间同步:
#clock --hctosys(硬件时间和系统时间同步)
或#hwclocl --hctosys
2.系统时间和硬件时间同步
#clock --systohc
或#hwclock --systohc(系统时间和硬件时间同步)

不同机器之间的时间同步

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

linux下同步时间,至少有两种方法:
rdate,ntpdate两种。centos最小化安装默认不安装,先确认已经安装过,否则先安装。

公用的NTP服务器

注意:同步时间,就必须有时间服务器。通常情况下,我们完全没必要自己搭建,使用公共的时间服务就可以。

国内可用的NTP服务器,用于系统时间同步
Asia -->asia.pool.ntp.org
	server 0.asia.pool.ntp.org
	server 1.asia.pool.ntp.org
	server 2.asia.pool.ntp.org
	server 3.asia.pool.ntp.org
China -->cn.pool.ntp.org
	server 0.cn.pool.ntp.org
	server 1.cn.pool.ntp.org
	server 2.cn.pool.ntp.org
	server 3.cn.pool.ntp.org
Hong Kong -->hk.pool.ntp.org
	server 0.hk.pool.ntp.org
	server 1.asia.pool.ntp.org
	server 0.asia.pool.ntp.org
aliyun -->aliyun.com
	server ntp1.aliyun.com
	server ntp2.aliyun.com
	server ntp3.aliyun.com

国内ntp服务器总结链接:https://blog.csdn.net/jinron10/…

ntpdate命令实现时间同步:

ntpdate命令较为简单

格式:
1 [root@node1 ~]# ntpdate [NTP IP/hostname]
2 [root@node1 ~]# ntpdate 3.cn.pool.ntp.org
3 [root@node1 ~]# ntpdate receive-11

注意,这样的同步只是强制性的将系统时间设置为ntp服务器时间。如果CPU Tick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置。比如,在crontab中添加:

#crontab -e 
0 12 * * * /usr/sbin/ntpdate 3.cn.pool.ntp.org

这样,会在每天的12点整,同步一次时间。ntp服务器为3.cn.pool.ntp.org。

rdate命令实现时间同步

rdate本身是用来获取远程时间服务器上时间用的,带上 -s 参数,就可以将获取到的时间应用到本地系统。

语法参数:
rdate [-ps][主机名称或IP地址...]
参数
-p  显示远端主机的日期与时间。
-s  把从远端主机收到的日期和时间,回存到本地主机的系统时间。
-u 传输协议使用UDP协议
-l 使用syslog显示错误信息
-t <时间>:设置超时时间

实例

#rdate  -s 0.cn.pool.ntp.org
#crontab -e
0 12 * * * /usr/sbin/ntpdate  0.cn.pool.ntp.org

(rdate命令做实验使用失败,后续再研究)
在这里插入图片描述


ntpd服务实现时间同步

使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间会造成时间的突变和跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且ntpd服务可以在修正时间的同时,修正CPU Tick。因此理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。

要注意的是,ntpd 有一个自我保护的机制:如果本机与上源时间相差太大,ntpd 不会运行时间同步操作,所以新设置的时间服务器一定要先 ntpdate 从上源取得时间初值, 然后启动 ntpd服务。ntpd服务运行后,先是每64秒与上源NTP服务器同步一次,根据每次同步时测得的误差值经复杂计算逐步调整自己的时间,随着误差减小,逐步增加同步的间隔。每次跳动,都会重复这个调整的过程。
ntpd服务原理介绍:https://www.cnblogs.com/williamjie/p/10768657.html
centos6.5搭建ntp服务:
centos7.2搭建ntp服务实现时间同步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值