• Linux 时间设置和同步服务


    修改日期时间的工具

    • date

    • hwclock

    • timedatectl

    date工具的使用
    作用:显示和设置系统时间
    
    选项:
    -d <字符串> 显示字符串所指的日期与时间,比如:"-1 day" 表示当前日期的前一天,必须要加双引号
    
    -s <字符串> 设置当前的时间和日期 #年月日使用(-)分隔,时分秒使用(:)分隔
    
    #时间日期格式: 
    %T:time,显示时分秒,24小时制(hh:mm:ss)
    
    %F:full date,显示年月日,%Y-%m-%d
    
    #范例:
    显示年月日时分秒: #date [+指定的格式]
    date "+%F %T" #需要用双引号括起来 表示这是一个整体
    
    使用date设置年月日:
    date -s "20220710"或date -s "YYYY-MM-DD" #时间设置成2022年7月10日0时0分
    
    只设置时间,不改年月日
    date -s "hh:mm:ss"
    
    设置全部时间
    date -s "YYYY-YY-DD HH:mm:ss"
    
    Y: 年
    m:月
    d:日
    
    H:时
    M:分
    S:秒
    
    hwclock工具实现时间校对
    -s, --hctosys #以硬件时钟为准,校正系统时钟
    
    -w, --systohc #以系统时钟为准,校正硬件时钟
    
    [root@Centos8 ~]# ll `which hwclock`
    -rwxr-xr-x. 1 root root 66928 Jul 22  2020 /usr/sbin/hwclock
    
    [root@Centos8 ~]# ll `which clock`
    lrwxrwxrwx. 1 root root 7 Jul 22  2020 /usr/sbin/clock -> hwclock
    
    #clock是hwclock的一个软链接,ubuntu上面只有hwclock
    
    时区查看和设置
    #查看时区列表:
    timedatectl list-timezones
    
    #修改时区:
    timedatectl set-timezone 时区
    
    #存放时区信息:
    /etc/timezone
    
    #修改日期时间:
    timedatectl set-time "2017-01-23 10:30:00" #YYYY-mm-dd HH-MM-SS
    
    #开启NTP:
    timedatectl set-ntp true/false
    
    #修改时区范例
    法一:
    timedatectl set-timezone Asia/Shanghai
    
    法二:
    root@ubuntu2004:~# rm -f /etc/localtime  #更改时区最终收到影响的文件:/etc/localtime
    root@ubuntu2004:~# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
    [root@Centos8 ~]# ll /etc/localtime 
    lrwxrwxrwx. 1 root root 35 Jun 25 22:33 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
    
    日历查看
    cal命令
    

    时间同步服务:NTP(网络时间协议)

    利用NTP(Network Time Protocol) 协议使网络中的各个计算机时间达到同步

    多主机协同工作,时间不同步各种网络服务可能不能正常运行
    

    时间同步工具

    提供NTP协议的软件:

    • ntp

    • chrony

    ntp工具

    将系统时钟和世界协调时UTC同步,精度在1-50ms之间。但是同步效率比较慢。

    chrony工具

    是实现NTP协议的的自由软件。

    特点:同步效率更高、精度更高、稳定性好
    
    [root@Centos8 ~]# rpm -ql chrony
    ...
    /etc/chrony.conf  #配置文件 会根据这个配置文件的内容来同步时间
    /etc/chrony.keys
    /etc/dhcp/dhclient.d/chrony.sh
    /etc/logrotate.d/chrony
    /etc/sysconfig/chronyd
    /usr/bin/chronyc #命令行用户工具,用于监控性能并进行多样化的配置。 是一个交互工具
    /usr/lib/.build-id
    /usr/lib/.build-id/23
    /usr/lib/.build-id/23/c12c89404f4f188e6b9336c0b409dc4da37be5
    /usr/lib/.build-id/53
    /usr/lib/.build-id/53/9fbf47304cfa48ee57850dbaab54688850f8af
    /usr/lib/systemd/ntp-units.d/50-chronyd.list
    /usr/lib/systemd/system/chrony-dnssrv@.service
    /usr/lib/systemd/system/chrony-dnssrv@.timer
    /usr/lib/systemd/system/chrony-wait.service
    /usr/lib/systemd/system/chronyd.service #Unit文件
    /usr/libexec/chrony-helper
    /usr/sbin/chronyd #后台运行的守护进程,服务端和客户端的主程序(又是服务器端也是客户端),默认是作为客户端
    ...
    
    监听端口: 服务端: 123/udp,客户端: 323/udp
    
    chrony默认是作为客户端使用的,要想使用服务端的功能,就需要打开123这个端口
    
    修改配置文件allow这一行就行了。
    #allow 0.0.0.0/0 表示的是任何主机都可以和本机进行时间的同步
    
    ss -ntlu:查看本机开了那些端口
    
    ss工具:
    是Socket Statistics的缩写。可以用来获取socket统计信息,它显示的内容和netstat类似
    -l	显示处于监听状态的套接字
    -n	不把端口解析为服务名称,而是以数字的方式显示
    -a	显示所有套接字,tcp、udp等
    -t	只显示TCP套接字
    -u	只显示UDP套接字
    
    
    配置文件chrony.conf
    server   #用于指定单个NTP服务器,iburst:让同步时间的时候更快,开启多个并行任务来进行同步
    
    pool    #用于指定NTP服务器池而不是单个NTP服务器。池名称应解析为随时间可能会变化的多个地址
    
    driftfile #根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中,会在重启后为系统时钟作出补偿
    
    rtcsync  #启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)
    
    allow / deny #允许或者拒绝某些主机和本机机型时间的同步
    
    cmdallow / cmddeny #可以指定哪台主机可以通过chronyd使用控制命令
    
    bindcmdaddress #允许chronyd监听哪个接口来接收由chronyc执行的命令
    
    makestep # 通常chronyd将根据需求通过减慢或加速时钟,使得系统逐步纠正所有时间偏差。在某些特定情况下,系统时钟可能会漂移过快,导致该调整过程消耗很长的时间来纠正系统时钟。该指令强制chronyd在调整期大于某个阀值时调整系统时钟
    
    local stratum 10  #当互联网无法连接,仍然可以为客户端提供时间同步服务
    #local stratum 10 将当前服务器设置为第十层(把自己设置为内部服务器的意思)
    
    ntp客户端工具:chronyc

    chronyc 可以运行在交互式和非交互式两种方式,支持以下子命令

    help 命令可以查看更多chronyc的交互命令
    
    accheck 检查是否对特定主机可访问当前服务器
    
    activity 显示有多少NTP源在线/离线
    
    sources [-v]   显示当前时间源的同步信息
    
    sourcestats [-v]显示当前时间源的同步统计信息
    
    add server 手动添加一台新的NTP服务器
    
    clients 报告已访问本服务器的客户端列表
    
    delete 手动移除NTP服务器或对等服务器
    
    settime 手动设置守护进程时间
    
    tracking 显示系统时间信息
    
    范例
    范例: CentOS6 ntp客户端同步检查
    ntpq -p
    
    CentOS7以上:
    chronyc sources -v
    

    公共NTP服务

    pool.ntp.org:这个项目是专门提供稳定的时间同步的
    
    阿里云公共NTP服务器
    Unix/linux类:ntp.aliyun.com,ntp1-7.aliyun.com
    windows类: time.pool.aliyun.com
    
    腾讯公共NTP
    time1-5.cloud.tencent.com
    
    大学ntp服务
    s1a.time.edu.cn 北京邮电大学
    s1b.time.edu.cn 清华大学
    s1c.time.edu.cn 北京大学
    
    国家授时中心服务器:210.72.145.44 
    
    美国标准技术院: time.nist.gov
    
  • 相关阅读:
    建模杂谈系列158 再探函数链的实现
    phpstrom设置注释
    如何优化网站排名(百度SEO指南与优化布局方法)
    QFramework Pro 开发日志(七)v0.4 版本审核通过 与 对话编辑器功能预告
    JavaScript 实现每次循环都等待
    一项调查研究中,测量了50个研究生的身高和体重,同时记录了他们的饮食习惯包括在过去的三个月时间内,他们吃了多少次垃圾食品,数据在‘weight.txt‘中。
    GoLang协程与通道---中
    计算机毕业设计SSM电影网站系统【附源码数据库】
    安防初识命令【学习笔记】
    前端BootStrap与LayUI框架
  • 原文地址:https://www.cnblogs.com/heyongshen/p/16549520.html