CentOS 6版本,使用 hwclock

CentOS 7版本,使用timedatectl


1.基本概念

1.1 GMT,UTC,CST,DST时间

  • 世界标准时间

整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC,Universal Time Coordinated)。

  • 格林威治标准时间

格林威治标准时间(Greenwich Mean Time)指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基本相同,本文中不做区分)

  • CST

中国标准时间(中国标准时间)

  • DST

夏令时(夏令时)指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。

1.2 硬件时间和系统时间

  • 硬件时间

RTC(实时时钟)或CMOS时间,一般在主板上靠电池供电,服务器断电后也会继续运行。仅保存日期时间数值,无法保存时区和夏令时设置。

  • 系统时间

一般在服务器启动时复制RTC时间,之后独立运行,保存了时间,时区和夏令时设置。


2. timedatectl命令

2.1 使用帮助

2.2命令示例

1、显示系统的当前时间和日期

2.设置日期与时间

3.查看所有可用的时区

 

4、设置时区

5.设置硬件时间

硬件时间默认为UTC

6.启用时间同步 

yes或no; 1或0也可以


3. Chrony服务

Chrony是网络时间协议的(NTP)的另一种实现,由两个程序组成,分别是chronyd和chronyc。

chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。

chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

优势:

  • 更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,这对于并非全天24小时运行的台式计算机或系统而言非常有用。
  • 能够更好地响应时钟频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用。
  • 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响。
  • 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性。
  • 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟。

在CentOS7下为标配的时间同步服务,当然也可以使用以前的NTP同步方式,不过要安装NTP服务。

3.1安装使用

yum install chrony              安装chrony
systemctl start chronyd       启动chrony程序
systemctl enable chronyd    设置开机自启动

3.2配置文件

当Chrony启动时,它会读取/etc/chrony.conf配置文件中的设置。也就是锁,如果需要更改时间同步的服务器,修改此配置文件即可。

stratumweight 0

# stratumweight指令设置当chronyd从可用源中选择同步源时,每个层应该添加多少距离到同步距离。默认情况下,设置为0,让chronyd在选择源时忽略源的层级。

driftfile /var/lib/chrony/drift

# chronyd程序的主要行为之一,就是根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中是最合理的,它会在重启后为系统时钟作出补偿,甚至可能的话,会从时钟服务器获得较好的估值。

rtcsync

# rtcsync指令将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。

makestep 10 3

# 通常,chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。
# 该指令强制chronyd在调整期大于某个阀值时步进调整系统时钟,但只有在因为chronyd启动时间超过指定限制(可使用负值来禁用限制),没有更多时钟更新时才生效。

#allow 192.168/16

# 这里你可以指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器。

bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys

# 该指令允许你限制chronyd监听哪个网络接口的命令包(由chronyc执行)。该指令通过cmddeny机制提供了一个除上述限制以外可用的额外的访问控制等级。

commandkey 1

# 指定了/etc/chrony.keys中哪一条密码被使用

generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony

# 此参数指定了产生一个SHA1或MD5加密的密码,存放在/etc/chrony.keys中


4、chrony实例

 
4.1、在控制节点服务器安装并启用chrony
#yum install chrony                  安装chrony
#systemctl start chronyd          启动chrony程序
#systemctl enable chronyd      设置开机自启动
#systemctl status chronyd       查看启动状态
 
4.2、修改服务器主配置文件
 
4.3、重启服务

#systemctl restart chronyd.service 
 
4.4、在客户端节点配置chrony。并修改配置文件
#yum install chrony
#vi /etc/chrony.conf
4.5、重启客户端chrony
#systemctl restart chronyd.service 
 

5、常用命令

查看时间同步源:

$ chronyc sources -v

查看时间同步源状态:

$ chronyc sourcestats -v

设置硬件时间

硬件时间默认为UTC:

$ timedatectl set-local-rtc 1

启用NTP时间同步:

$ timedatectl set-ntp yes

校准时间服务器:

$ chronyc tracking

查看时间同步的信息来源
# chronyc sources
# chronyc sources -v


利用NTP实现集群时间同步
1、NTP介绍
NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。
2、环境说明
VMware中三台虚拟机:都是centOS7.2系统 IP
用途 192.168.182.141
ntpd服务器,用于与外部公共ntpd同步标准时间 192.168.182.142
ntpd客户端,用于与ntpd同步时间 192.168.182.143
ntpd客户端,用于与ntpd同步时间 #ping asia.pool.ntp.org     //https://www.ntppool.org/zh/use.html 
公网上有效的几个ntpd服务器:
ntp.fudan.edu.cn (复旦) 
asia.pool.ntp.org(台警大授时中心-台湾)
time.windows.com (微软公司授时主机-美国) 
time.nist.gov (美国)
pool.ntp.org

3 服务器端安装步骤

3.1 在服务器端都检测并安装ntpd
#which ntpd
#yum -y install ntpd 3.2 修改服务器端(IP:192.168.184.141)配置文件,
添加网关:192.168.184.2 子网掩码:255.255.255.0

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.184.2 mask 255.255.255.0 nomodify notrap     //添加此行,对本主机提供ntp服务

#server 0.centos.pool.ntp.org iburst        //注释掉原服务器
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

server asia.pool.ntp.org prefer        //添加服务器,这个是本主机可以去此服务器同步时间的服务器,prefer表示优先
server 127.127.1.0                     //这是本地地址,如果外网无法使用,则使用本地时间
restrist asia.pool.ntp.org nomodify notrap noquery     //允许外网服务器对本地时间做修改

3.3 服务器端开启npt服务

#systemctl enable ntpd    //表示开机自动启动ntp服务

#systemctl start ntpd     //表示ntp服务

3.4 手动同步时间

这个提示表明NTP的端口已经被占用了,该端口默认为123,并且是UPD模式。可以使用nc或者netstat命令查看那个服务占用了此端口

# ntpdate pool.ntp.org     
9 Aug 13:49:33 ntpdate[1452]: the NTP socket is in use, exiting

一般情况下,别的服务是不会占用这个端口的,所以可能的结果是ntpd服务在占用。此时,可以使用ntpdate命令的-u参数解决此问题,即:

# ntpdate -u pool.ntp.org
15 May 11:19:13 ntpdate[28173]: adjust time server 202.118.1.81 offset -0.029390 sec

3.5 查看网络中的NTP服务器,同时显示客户端和每个服务器的关系

# ntpq -pn

3.6 查看时间同步状态

#ntpstat

4、在客户端安装并用NTP服务   IP:192.168.184.142/143

4.1 安装并检查ntp服务(参考3)

4.2 修改配置文件

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.184.141 nomodify notrap noquery           //添加此行,允许NTP服务端对本机时间进行修改

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst         //注释原服务器
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 192.168.184.141                      //添加需要向所同步的服务器端的IP

4.3 开启ntp服务(如上)

4.4 查看网络中的NTP服务器,同时显示客户端和每个服务器的关系

需要同步过程时间,大概5-10分钟



参考:

1、官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-ntp.html

2、https://www.cnblogs.com/zhi-leaf/p/6282301.html

3、來源:简书         链接:https://www.jianshu.com/p/fb32239ccf2b

4、https://www.cnblogs.com/cloudos/p/NTP.html

5、https://www.cnblogs.com/WangLei1221/p/8282526.html

6、https://www.ntppool.org/zh/use.html

CentOS7时间和日期的同步 (chrony和)的更多相关文章

  1. CentOS7时间设置及ntp同步配置(转)

    出处:http://www.centoscn.com/CentOS/config/2015/1105/6385.html http://www.centoscn.com/CentOS/config/2 ...

  2. CentOS7 时间设置与网络同步

    1.查看时区 [root@localhost /]# date -R Thu, Jul :: + +0800表示东八区,这边就不用再设置 时区中的CST表示中国标准时间. 时区相关共享文件在/usr/ ...

  3. Linux 设置系统时间和日期 API

    嵌入式Linux 设置时间和日期 API ,它是busybox要提取的源代码. Linux设置时间和日期的步骤: 1. 设置系统时间和日期: 2. 该系统的时间和日期,同步到硬件. #include ...

  4. centos7 时间自动同步

    设置开机自动同步Internet时间,并作定时同步任务1.修改时区 rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc ...

  5. CentOS7--配置时间和日期

    CentOS7提供三个命令行工具,可用于配置和显示有关系统日期和时间的信息. timedatectl:Linux 7中的新增功能,也是systemd其中的一部分. date:系统时钟,也成为软件时钟, ...

  6. java JDK8 学习笔记——第13章 时间与日期

    第十三章 时间与日期 13.1 认识时间与日期 13.1.1 时间的度量 1.格林威治标准时间GMT 格林威治标准时间的正午是太阳抵达天空最高点之时.现在已经不作为标准时间使用. 2.世界时UT世界时 ...

  7. Centos 修改时间地区及NTP同步北京时间

    在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况.如果没有安装,而你使用的是 CentOS系统 那使用命令 yum insta ...

  8. ☕【Java深层系列】「技术盲区」让我们一起完全吃透针对于时间和日期相关的API指南

    技术简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的位置比如joda.文章主要对java日期处理的详解,用1.8可以不用joda. 时间概念 首先我们对一些基本的概念 ...

  9. Android随笔之——Android时间、日期相关类和方法

    今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...

随机推荐

  1. python中从键盘输入内容的方法raw_input()和input()的区别

    raw_input()输出结果都是字符串 Input()输入什么内容,输出就是什么内容

  2. 2017-2018-2 20165215 实验四《Android开发基础》实验报告

    2017-2018-2 20165215 实验四<Android开发基础>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:张家佳 学号:20165215 指导教 ...

  3. 【Alpha版本】冲刺阶段——Day2

    [Alpha版本]冲刺阶段--Day2 阅读目录 今日进展 问题困难 明日任务 今日贡献量 站立式会议 TODOlist [今日进展] 密码算法方面: 存储密码的步骤 使用CSPRNG生成一个长度足够 ...

  4. How to use CAR FANS C800 Diagnostic Scan Tool to do diagnosis operation

    How to use Heavy Duty Diagnostic CAR FANS C800 Diagnostic Scan Tool to do diagnosis operation Here i ...

  5. 需求中碰到的简单Map集合 key相同合并 value的思路

    从两个接口获取到了数据Map集合, 但是要展示到同一页面 根据了播控人为key 将两个返回的进行遍历 将他们存在新的map里面 只有单个key value 就存为(MAP<object,obje ...

  6. 使用jwt

    jwt:json web token 使用jwt的好处1,无状态2解耦3,更适合于移动端Android,ios4,性能更好5,能够不考虑csrf攻击 ①,客户端请求 Date date = new D ...

  7. jQuery输入框回车添加标签特效

    效果如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  8. dubbo环境搭建与tomcat集成、DEMO示例、常见问题(最完整版本、带管理控制台、监控中心、zookeeper)

    以windows为例,linux基本相同,开发环境一般linux,个人环境一般windows(如果不开额外vm的话). 示例以dubbo官方自带demo为例子,进行整合和稍加修改测试. 0.dubbo ...

  9. 【题解】Luogu CF86D Powerful array

    原题传送门 裸的莫队啊,我博客里有对莫队较详细的介绍 这道题很简单,可以说是裸的模板 但是如何在已有的值上进行操作? 小学生应该都知道 那么转移就超级简单了qaq inline void add(re ...

  10. php5.3.x连接MS SQL server2008

    开篇 因为毕设老师需求的原因,虚拟旅游网站要求的数据库必须使用MS SQL server. 我最擅长的web编程语言是PHP,但是在PHP中链接MS SQL server是一件非常麻烦的事,我个人分析 ...