业务场景

由于开发用的laravel框架,业务中用了很多job定时任务,时间几乎分布在全天的任何时间点(精确到秒),如果服务器时间校准出现时间跳跃的话,很有可能导致某些计划任务无法执行。

实现方法分析

首先想到的就是定时执行

20 3 * * * ntpdate 1.cn.pool.ntp.org >> /root/cron.log 2>$1

但是这样的话会导致如果任务A是在20:18:18执行,但是ntpdate从20:18:15开始校准,一下把服务器时间设置成了20:18:20秒,那么计划任务A就被跳过了,没有执行。

解决以上问题的方案

先用ntpdate每天同步一次(最好在闲时同步)

然后用ntpd守护进程服务来校准。

为什么要这样做呢?原因如下

ntpd在实际同步时间时是一点点的校准过来时间的,最终把时间慢慢的校正对。

ntpdate不会考虑其他程序是否会阵痛,直接调整时间。

使用ntpdate导致的问题

不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用(当误差大于0.5秒的时候,用settimeofday直接设置系统时间,小于0.5秒的时候用adjtime和偏移量来)设置系统时间,这有几个非常明显的问题:

这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。

因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差,或者说 Local Clock 的自然漂移(drift)记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。

最后提醒一下使用vmware的各位,因为虚拟机的时钟不太正常,比正常速度慢好多秒,所以在虚拟机上测试ntpd很难得到理想的结果,我当年就是为这个问题耽搁了好几天。。

linux系统怎么同步时间不对,linux系统同步系统时间相关推荐

  1. manjaro时间不对,恢复正确时间

    manjaro时间不对,恢复正确时间 在我使用manjaro的时候,有一次突然电脑没电关机了,这个时候没有正确是时间,连bing都不让你搜索,所以我们需要调整一个正确的时间! 一行命令解决 sudo ...

  2. linux服务器cst时间不对,Linux中UTC时间与CST时间不一致的问题

    为了学习,在虚拟机中最小化安装了CentOS6.7,使用时发现文件的时间戳跟实际时间不一致,用date查看时间的时候显示: 2016年 01月 01日 星期五 21:11:43 CST 然后用date ...

  3. django linux 有时候获取时间不对,关于Django显示时间你应该知道的一些问题

    UTC与DST UTC可以视为一个世界统一的时间,以原子时为基础,其他时区的时间都是在这个基础上增加或减少的,比如中国的时区就为UTC+8. DST(夏时制)则是为了充分利用夏天日照长的特点,充分利用 ...

  4. 计算机开机时间不对,电脑每次开机时间都不对?究竟是哪里出了问题?该怎么修复?...

    [导语]:近期有很多的朋友说自己的电脑每次开机都需要重新设置时间,那么这究竟是什么情况呢?今天小编就为大家说说吧! 当你遇到每次开机的时候,时间都对不上,可能是以下的情况. 电脑故障分析: 在电脑中, ...

  5. linux nginx http cache时间不对,Linux中Nginx设置proxy_cache缓存与取消缓存-linux-操作系统-壹...

    本文章来讲述一下关于Linux中Nginx设置proxy_cache缓存与取消缓存实现方法,有需要的朋友可参考. 在配置文件的server{}内,添加这么一句即可: 代码如下 复制代码 locatio ...

  6. linux几秒钟同步一次,Linux时间同步配置方法

    由于是在做mongoDB的实验中再一次的遇到了mongos路由节点同步时由于ntp时间的问题导致同步非常的慢.故写了个时间同步的语句===> while :; do rdate -s 192.1 ...

  7. Linux进程间同步和通信,linux进程间的同步方法

    进程间通讯(IPC)方法主要有以下几种: 管道/FIFO/共享内存/消息队列/信号 1.管道中还有命名管道和非命名管道(即匿名管道)之分,非命名管道(即匿名管道)只能用于父子进程通讯,命名管道可用于非 ...

  8. linux硬链接同步文件夹,linux中的硬链接和软链接

    一.ln命令概述 它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上 ...

  9. linux用户登录报密码不对,Linux用户登录密码的生成

    一.从自动化需求说起 如何生成一个Linux用户登录密码?可能有人会说用passwd生成.的确,passwd命令能够帮助我们重置用户登录密码,但是这并没有解答如何生成一个Linux用户登录密码的疑问. ...

最新文章

  1. javascript学习笔记(一)-廖雪峰教程
  2. 深入解析MVVM架构
  3. 从零开始刷Leetcode——数组(268.283.414)
  4. 如何用python画长方形_python opencv 画矩形跟老齐学Python之用Python计算
  5. window文件恢复工具
  6. 软件架构及几种典型框架
  7. 经历没有亮点可讲?你需要做份“详历”
  8. PHP网页设计作业,bootstrap前端框架留言板系统源码
  9. 数据处理笔记6:缺失值填充
  10. K-Stack 2021牛客多校2
  11. wget - Linux系统下载文件工具
  12. iOS OC10_Block
  13. 【CCF会议期刊推荐】CCF推荐国际学术期刊/会议(数据库/数据挖掘/内容检索)
  14. 被怼到绝望的我,Java框架体系架构的知识,超详细
  15. RPG游戏制作-04-接入脚本前的准备
  16. 汽车用户消费投诉数据爬取分析(Python爬虫)
  17. 求三角函数积分的一个技巧公式
  18. [附源码]JAVA+ssm计算机毕业设计道路桥梁工程知识文库系统(程序+Lw)
  19. Affiliate Marketing是什么?一篇文章帮你彻底搞清楚!
  20. 利用PhotoShop自定义艺术字体

热门文章

  1. 【百度快照】基于MATLAB的人民币纸币系列号面额识别系统【GUI】
  2. 科技助力创业升级,看新零售无人超市如何突围?
  3. 实在智能RPA签约东莞电信,IPA邀你畅享数字生活
  4. 实战spdk perf
  5. 美国网件三层内网配置实例
  6. linux mongodb 命令换行,mongodb常用管理命令(1)
  7. 物联网的边缘计算应用在智慧城市中
  8. ufs 固态硬盘_手机机身存储到底有多快?UFS闪存和电脑固态硬盘谁更强?
  9. iscsiadm 与 iscsid 代码流程
  10. Shopee Man:分析虾皮菲律宾从开店到引流过程如何提升店铺销量