linux时间管理

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 显示系统时间信息

    推荐阅读