linux_时间同步方法

linux,时间同步相关琐碎问题

UTC、RTC

RTC :可以像时钟一样输出实际时间的电子设备,一般会是集成电路,因此也称为时钟芯片。可以把他想象成一个存储器,里面只存储了年月日时分秒这些数据。
UTC:全球通用的时间标准,全球各地都同意将各自的时间进行同步协调。UTC 时间是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以秒为单位的国际原子时所综合精算而成。 即每一个地方在同一时刻的UTC时间是相同的。
UNIX 时间:从UTC 1970年1月1日0时0分0秒起至现在的总秒数,不考虑闰秒。
localtime时间:我们看到的正确的时间,就是UTC+时区偏移。

del01

ntpdate单次同步

1
2
3
4
5
6
7
8
9
10
11
ntpdate [NTP IP/hostname]  
```
强制性的将系统时间设置为ntp服务器时间。如果CPU Tick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置。比如,在crontab中添加:
```
0 12 * * * /usr/sbin/ntpdate 192.168.0.1
```
这样,会在每天的12点整,同步一次时间。ntp服务器为192.168.0.1。


## date 命令修改系统时间成功,但未生效
执行命令:timedatectl

(base) xxxx@yyyy:~$ timedatectl
Local time: 二 2022-04-12 17:04:46 CST
Universal time: 二 2022-04-12 09:04:46 UTC
RTC time: 二 2022-04-12 09:04:46
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
先关闭ntp同步 timedatectl set-ntp false  
再执行 date -s “2019-02-02 02:02:02”

## ntpd、ntpdate的区别
ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。
## 常用命令timedatectl,systemctl,修改时间同步配置
```
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
(base) xxxx@yyyy:~$ timedatectl
Local time: 二 2022-04-12 17:04:46 CST
Universal time: 二 2022-04-12 09:04:46 UTC
RTC time: 二 2022-04-12 09:04:46
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
(base) xxxx@yyyy:~$ systemctl status systemd-timesyncd
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2022-04-10 06:32:38 CST; 2 days ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 459 (systemd-timesyn)
Status: "Synchronized to time server 91.189.89.198:123 (ntp.ubuntu.com)."
Tasks: 2 (limit: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─459 /lib/systemd/systemd-timesyncd
```
修改systemd-timesyncd配置文件

vi /etc/systemd/timesyncd.conf

1
重启systemd-timesyncd服务生效

root@HP:~# systemctl restart systemd-timesyncd.service

1
2
3
4
5


## Linux体系下NTP协议的超等配置攻略
Linux体系下NTP协议的超等配置攻略:https://www.caogenba.net/archiver/?tid-31250.html
2:限定你允许的这些服务器的访问类型,在这个例子中的服务器是不容许修改运行时设置或查询您的Linux NTP服务器

restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap

1
2

在上例中,掩码所在扩展为255,因此从192.168.0.1-192.168.0.254的服务器都可以使用我们的NTP服务器来同步时间

#此时表现限定向从192.168.0.1-192.168.0.254这些IP段的服务器提供NTP服务。
restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap noquery

#设置默认策略为允许任何主机进行时间同步
restrict default ignore

1
2
3


3:确保localhost(这个常用的IP所在用来指Linux服务器本身)有足够权限.使用没有任何限定关键词的语法:

restrict 127.0.0.1
restrict -6 ::1

1
启动NTP服务

service ntpd status #查看ntpd服务状态
service ntpd start #启动ntpd服务
service ntpd stop #制止ntpd服务
service ntpd restart #重启ntpd服务

1
查抄ntp服务是否开机启动,将其设置为开机启动。

chkconfig –list ntpd

ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

```

参考

UTC、RTC、UNIX时间戳、localtime 理解:https://www.csdn.net/tags/MtTaEgysMTcyNDgyLWJsb2cO0O0O.html
Linux系统时间同步方法:https://www.cnblogs.com/javalinux/p/15328590.html
Linux 修改系统时间成功未生效:https://blog.csdn.net/weixin_43894312/article/details/103710667
Linux 时间同步systemd-timesyncd介绍:https://blog.csdn.net/ruth13156402807/article/details/117743928
Ntp时间服务器与定时任务Crontab详解:www.itxm.cn/post/8920.html
较详细且体现了server和client差异。
NTP时间同步:t.zoukankan.com/fusheng11711-p-12071780.html
【服务端安装配置NTP,配置客户端】

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×