CentOS7时间和日期的同步 (chrony和)
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实例
#systemctl start chronyd 启动chrony程序
#systemctl enable chronyd 设置开机自启动
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和)的更多相关文章
- CentOS7时间设置及ntp同步配置(转)
出处:http://www.centoscn.com/CentOS/config/2015/1105/6385.html http://www.centoscn.com/CentOS/config/2 ...
- CentOS7 时间设置与网络同步
1.查看时区 [root@localhost /]# date -R Thu, Jul :: + +0800表示东八区,这边就不用再设置 时区中的CST表示中国标准时间. 时区相关共享文件在/usr/ ...
- Linux 设置系统时间和日期 API
嵌入式Linux 设置时间和日期 API ,它是busybox要提取的源代码. Linux设置时间和日期的步骤: 1. 设置系统时间和日期: 2. 该系统的时间和日期,同步到硬件. #include ...
- centos7 时间自动同步
设置开机自动同步Internet时间,并作定时同步任务1.修改时区 rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc ...
- CentOS7--配置时间和日期
CentOS7提供三个命令行工具,可用于配置和显示有关系统日期和时间的信息. timedatectl:Linux 7中的新增功能,也是systemd其中的一部分. date:系统时钟,也成为软件时钟, ...
- java JDK8 学习笔记——第13章 时间与日期
第十三章 时间与日期 13.1 认识时间与日期 13.1.1 时间的度量 1.格林威治标准时间GMT 格林威治标准时间的正午是太阳抵达天空最高点之时.现在已经不作为标准时间使用. 2.世界时UT世界时 ...
- Centos 修改时间地区及NTP同步北京时间
在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况.如果没有安装,而你使用的是 CentOS系统 那使用命令 yum insta ...
- ☕【Java深层系列】「技术盲区」让我们一起完全吃透针对于时间和日期相关的API指南
技术简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的位置比如joda.文章主要对java日期处理的详解,用1.8可以不用joda. 时间概念 首先我们对一些基本的概念 ...
- Android随笔之——Android时间、日期相关类和方法
今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...
随机推荐
- greenplum presto impala选型与测评
查看原文请至:https://my.oschina.net/hblt147/blog/1843028
- seo网页加速技术,预加载 DNS Prefetching 详解
seo网页加速技术,预加载 DNS Prefetching 详解 DNS Prefetching 是什么 : DNS 是什么-- Domain Name System,域名系统,作为域名和IP地址相互 ...
- JS 和 Jquery 的一些常用效果
https://www.cnblogs.com/beiz/tag/%E7%BD%91%E9%A1%B5%E5%B8%B8%E8%A7%81%E6%95%88%E6%9E%9C/ 北执
- java中的关键字、保留字、标识符
Java关键字(KeyWord): 对Java的编译器有特殊的意义,他们用来表示一种数据类型或者表示程序的结构. Java保留字(Reserved Word):为Java预留的关键字,现在还没有用到 ...
- Tomcat启动报错:[Failed to start component]的解决方案
在MyEclipse中启动Tomcat,该Tomcat仅部署了一个报错项目,启动Tomcat Server的全部信息如下: usage: java org.apache.catalina.startu ...
- hiho一下 第144周
题目1 : 机会渺茫 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在追求一名学数学的女生小Z.小Z其实是想拒绝他的,但是找不到好的说辞,于是提出了这样的要求: ...
- Prometheus监控学习笔记之Prometheus普罗米修斯监控入门
0x00 概述 视频讲解通过链接网易云课堂·IT技术快速入门学院进入,更多关于Prometheus的文章. Prometheus是最近几年开始流行的一个新兴监控告警工具,特别是kubernetes的流 ...
- PHP使用http_build_query()构造URL字符串的方法(可将POST参数组转换拼接成GET请求链接)
<?php //parse_str与http_build_query的使用 //使用parse_str将url字符串转变为key=>value的数组 $str = "tn=mon ...
- 【题解】Luogu P2787 语文1(chin1)- 理理思维
原题传送门:P2787 语文1(chin1)- 理理思维 前置芝士:珂朵莉树 窝博客里对珂朵莉树的介绍 没什么好说的自己看看吧 珂朵莉树跑的飞快,但还是没有memset0小姐姐跑得快 操作1:暴力统计 ...
- "添加与删除程序"报rundll32错误
无法启动"添加与删除程序"系统报rundll32错误 系统反馈以下信息: rundll32.exe应用程序错误"0x00310030"指令 解决方法: 1.启动 ...