Linux时间设置 date、hwclock、timedatectl
date 查看及设置系统时间:
[root@localhost ~]# date
Thu Jan 13 16:30:27 CST 2022
[root@localhost ~]# date -s "20220113 16:33:00"
Thu Jan 13 16:33:00 CST 2022
hwclock设置系统时间:
[root@localhost ~]# hwclock
2022-01-13 16:37:35.195393+08:00
//同步硬件时间到系统时间
[root@localhost ~]# hwclock -s
[root@localhost ~]# hwclock --hctosys
//同步系统时间到硬件时间
[root@localhost ~]# hwclock -w
[root@localhost ~]# hwclock --systohc
timedatectl时间管理:
//查询时间及时区
[root@localhost ~]# timedatectl
Local time: Thu 2022-01-13 16:53:10 CST
Universal time: Thu 2022-01-13 08:53:10 UTC
RTC time: Thu 2022-01-13 16:53:09
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: yes
//查询并设置时区
[root@localhost ~]# timedatectl list-timezones
[root@localhost ~]# timedatectl set-timezone "Asia/Shanghai"
//设置日期和时间
[root@localhost ~]# timedatectl set-time '16:10:40 2015-11-20'
[root@localhost ~]# timedatectl set-time UTC
//设置硬件时间为本地时间
[root@localhost ~]# timedatectl set-local-rtc 1
[root@localhost ~]# timedatectl set-local-rtc 0
//
Linux时间同步 ntpdate、ntpd、chronyd ntpdate时间同步:
[root@localhost ~]# ntpdate 192.168.0.1
[root@localhost ~]# ntpdate time.ntp.org
ntpd时间同步(端口:123):
//配置文件:/etc/ntp.conf
1. 关于权限设定部分
权限的设定主要以restrict这个参数来设定,主要的语法为:
restrict IP mask netmask_IP parameter
其中IP可以是软件地址,也可以是default,default就类似0.0.0.0。至于paramter则有:
ignore:关闭所有的 NTP 联机服务
nomodify:表示Client端不能更改Server端的时间参数
notrust:该Client除非通过认证,否则该Client来源将被视为不信任网域
noquery:不提供Client端的时间查询
notrap:不提供trap这个远程事件登入
如果paramter完全没有设定,那就表示该 IP (或网域)"没有任何限制"restrict default nomodify notrap noquery# 关闭所有的NTP要求封包
restrict 127.0.0.1# 这是允许本机查询
restrict 192.168.0.1 mask 255.255.255.0 nomodify# 在192.168.0.1/24网段内的服务器就可以通过这台NTP Server进行时间同步了2. 上层主机的设定
要设定上层主机主要以server这个参数来设定,语法为:
server [IP|HOST Name] [prefer]
Server后面接的就是上层Time Server,后面加上perfer的话,那表示我们的NTP主机主要以该部主机来作为时间校正的对应。另外,为了解决更新时间封包的传送延迟动作,可以使用driftfile来规定我们的主机,在与Time Server沟通时所花费的时间,可以记录在driftfile后面接的文件内,例如下面的范例中,我们的NTP server与cn.pool.ntp.org联机时所花费的时间会记录在/var/lib/ntp/drift文件内。
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server cn.pool.ntp.org prefer3. 其他设置值,以系统默认值即可
server 127.127.1.0# local clock
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
keys /etc/ntp/keys
//确认ntp已经同步了时间
[root@localhost ~]# ntpstat
synchronised to NTP server (202.120.2.101) at stratum 4
time correct to within 557 ms
polling server every 64 s
# 该指令可列出NTP服务器是否与上层联机。由上述输出结果可知,时间校正约为557*10(-6)秒,且每隔64秒会主动更新时间。
//ntpq命令
[root@localhost ~]# ntpq -p
remoterefidst t when poll reachdelayoffsetjitter
==============================================================================
*stratum2-1.ntp. 195.91.239.82 u24641258.761-16.14616.491
ntp6.flashdance 194.58.202.1482 u23641330.60447.24313.014
a.chl.la131.188.3.2222 u22641187.22441.5011.249
139.199.215.251 100.122.36.1962 u2164144.81529.0437.562remote:即NTP主机的IP或主机名称。注意最左边的符号,如果由"+"则代表目前正在作用钟的上层NTP,如果是"*"则表示也有连上线,不过是作为次要联机的NTP主机。
refid:参考的上一层NTP主机的地址
st:即stratum阶层
when:几秒前曾做过时间同步更新的操作
poll:下次更新在几秒之后
reach:已经向上层NTP服务器要求更新的次数
delay:网络传输过程钟延迟的时间
offset:时间补偿的结果
jitter:Linux系统时间与BIOS硬件时间的差异时间# ntp服务默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件。在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。
chronyd时间同步(端口:323):
//配置文件:
# 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# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3# Enable kernel synchronization of the real-time clock (RTC).
rtcsync# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2# Allow NTP client access from local network.
allow 192.168.0.0/16# Serve time even if not synchronized to a time source.
local stratum 10# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys# Specify directory for log files.
logdir /var/log/chrony# Select which information is logged.
#log measurements statistics tracking
配置参数:
参数 | 参数说明 |
---|---|
server | 该参数可以多次用于添加时钟服务器,必须以"server "格式使用。 |
stratumweight | stratumweight指令设置当chronyd从可用源中选择同步源时,每个层应该添加多少距离到同步距离。默认情况下,CentOS中设置为0,让chronyd在选择源时忽略源的层级。 |
driftfile | chronyd程序的主要行为之一,就是根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中是最合理的,它会在重启后为系统时钟作出补偿,甚至可能的话,会从时钟服务器获得较好的估值。 |
rtcsync | rtcsync指令将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC) |
allow/deny | 这里你可以指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器。 |
cmdallow/cmddeny | 指定哪个IP地址或哪台主机可以通过chronyd使用控制命令。 |
bindcmdaddress | 该指令允许你限制chronyd监听哪个网络接口的命令包(由chronyc执行)。该指令通过cmddeny机制提供了一个除上述限制以外可用的额外的访问控制等级。 |
makestep | 通常,chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀值时步进调整系统时钟,但只有在因为chronyd启动时间超过指定限制(可使用负值来禁用限制),没有更多时钟更新时才生效。 |
//查看时间同步源:
[root@localhost ~]# chronyc sources -v
210 Number of sources = 4
.-- Source mode'^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /'?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||.- xxxx [ yyyy ] +/- zzzz
||Reachability register (octal) -.|xxxx = adjusted offset,
||Log2(Polling interval) --.||yyyy = measured offset,
||\||zzzz = estimated error.
||||\
MS Name/IP addressStratum Poll Reach LastRx Last sample
===============================================================================
^* 202.118.1.13017377118-1213us[-1553us] +/-20ms
^- time.cloudflare.com3733747+48ms[+48ms] +/-166ms
^- ntp7.flashdance.cx2835746-13ms[-13ms] +/-229ms
^+ 139.199.215.2512837757-7428us[-7428us] +/-32ms//立即手工同步
[root@localhost ~]# chronyc -a makestep
200 OK//查看时间同步源状态:
[root@localhost ~]# chronyc sourcestats -v
210 Number of sources = 4
.- Number of sample points in measurement set.
/.- Number of residual runs with same sign.
|/.- Length of measurement set (time).
||/.- Est. clock freq error (ppm).
|||/.- Est. error in freq.
||||/.- Est. offset.
||||||On the -.
||||||samples. \
|||||||
Name/IP AddressNPNRSpanFrequencyFreq SkewOffsetStd Dev
==============================================================================
202.118.1.13065646-10.81397.702-40us5068us
time.cloudflare.com1151037+0.21113.118+52ms2892us
ntp7.flashdance.cx221232m+0.08913.917-26ms8756us
139.199.215.251251132m-0.0983.164-514us2062us//校准时间服务器:
[root@localhost ~]# chronyc tracking
Reference ID: CA760182 (202.118.1.130)
Stratum: 2
Ref time (UTC): Thu Jan 13 15:54:22 2022
System time: 0.000000001 seconds fast of NTP time
Last offset: -0.003181520 seconds
RMS offset: 0.002209083 seconds
Frequency: 7.816 ppm fast
Residual freq: -0.157 ppm
Skew: 3.514 ppm
Root delay: 0.044469427 seconds
Root dispersion : 0.005420812 seconds
Update interval : 129.1 seconds
Leap status: Normal
【linux时间管理】chronyc命令参数说明:
参数 | 参数说明 |
---|---|
accheck | 检查NTP访问是否对特定主机可用 |
activity | 该命令会显示有多少NTP源在线/离线 |
add server | 手动添加一台新的NTP服务器 |
clients | 在客户端报告已访问到服务器 |
delete | 手动移除NTP服务器或对等服务器 |
settime | 手动设置守护进程时间 |
tracking | 显示系统时间信息 |
推荐阅读
- pem pfx 是什么文件
- linux运维|GraphicsMagick命令行使用示例
- linux运维|网站框架演变
- 初识 etcd
- 创建一个Pod背后etcd的故事
- Pod 的QoS服务质量
- Ansible 运维自动化
- OpenSSL 自签证书详解
- Systemd 进程管理