在一些大公司经常出现这样一个情况:公司或一些机关单位的内部业务系统的应用服务器以及数据都是做的多机集群部署而且基本都是linux系统,而且都是内部网,不与外网通讯的。这样经常就会出现一个情况,我发送任务的时间还晚于对方任务接收的时间。这样经常令我们头痛,那为什么会出现这样一个情况呢,其实就是linux机器的系统没有定时同步导致的,这个问题不仅linux系统有,windows系统也会出现这样的问题,比如我们的windows系统很久没开过机了,那么我们就会发现windows系统上的时间不对了,但是为什么我们常使用的windows系统就不会时间不一致呢,因为我们的windows系统会自动定时的与远程标准的时间服务器同步时间,对出现的时间误差进行校准。

  但是这里我们说了,是内网的linux系统,不能与外界互联网通讯而且linux因为其开放性的原因也有一个弊端,很多东西都没有设置死,只能自己去设置,尤其是黑乎乎的命令行系统。

这里教大家一个方法就是设置linux自动定时的与某一个内部时间服务器同步,这样就可以保证多台机器的时间始终一致。这里主要有两个问题:

1.如何实现与指定时间服务器同步,进行时间校准?

2.怎样实现linux系统服务级的定时执行?

好吧,下面依次解决这两个问题就好了。首先假设我们的时间服务器的ip地址为192.168.1.10。

1.时间同步我们用命令ntpdate,这个命令具体用法以后我的博客会专门讲到这个问题,也可以查看命令帮助。这里先直接使用即可:

ntpdate -u 192.168.1.10

这样就可以与192.168.1.10的时间服务器同步了。

2.怎样实现定时执行。这里主要都是用到/etc/crontab实现定时。这个文件是linux的系统定时调度文件,在系统启动后会加载这个文件。先看下这个文件:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/ # For details see man crontabs # Example of job definition:
# .---------------- minute ( - )
# | .------------- hour ( - )
# | | .---------- day of month ( - )
# | | | .------- month ( - ) OR jan,feb,mar,apr ...
# | | | | .---- day of week ( - ) (Sunday= or ) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed ~
~
~
~
看看这个文件,前面四行可以忽略不管。其实这个有个例子在这里了,非常容易看懂,关键就是这一行:
*  *  *  *  *  command to be executed
第一个*表示分钟,第二个*表示小时,第三个*表示一个月的那一天,第四个*表示月份,第五个*表示一周的那一天。其中要表示任何一个都可以就直接用*表示。前面五个位置以后就表示要执行的命令和参数。
所以定时执行已经掌握了,那么我们定时时间同步校准应该怎样呢。 首先进入/etc/crontab文件
vim  /etc/crontab

插入一行定时执行同步代码,假设我们每天凌晨1点执行一次时间同步。即如下代码:

  * * * root  ntpdate -u 192.168.1.10

这样我们就设置好了linux服务器定时与时间服务器同步校准时间的任务了。bingo!是不是很简单呢

如果有时间的话,以后会写一下ntpdate命令的使用以及时间服务器的搭建。

设置linux服务器定时与时间服务器同步的更多相关文章

  1. 【树莓派】crontab设置Linux设备定时重启

    简介:设置Linux设备定时重启或者关机 问题:有台设备每天总需要使用的人手动重启一下才可以正常工作,但是检查了日志,看起来服务一切都正常.时间和正确时间相差4mins. 解决办法: 1.增加定时任务 ...

  2. Linux系统安装配置NTP时间服务器

    背景 局域网不能上外网情况下同步集群时间,搭建NTP服务器,并设置其他主机每小时同步时间(假设使用地址为192.168.3.21的主机作为NTP服务器) 安装NTP $ sudo yum instal ...

  3. linux服务之NTP时间服务器

    1. NTP简介 NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议.它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0 ...

  4. Oracle管理监控之设置linux启动时自动启动oracle服务器

    1. 修改dbstart脚本(第78行):$ vi $ORACLE_HOME/bin/dbstartORACLE_HOME_LISTNER=$ORACLE_HOME 2. 修改/etc/oratab为 ...

  5. linux 修改系统时间 同步网络时间

    一.date命令 date -s time  修改系统时钟时间为time 设置时间和日期 例如:将系统日期设定成2018年6月8日的命令 命令 : "date -s 06/08/2018&q ...

  6. Linux 配置rdate时间服务器方法

    配置多台服务器时,经常需要让各个服务器之间的时间保持同步,如果服务器有外网环境,可以直接同外部的时间服务器更新时间,可以采用rdate命令更新时间: rdate -s tick.greyware.co ...

  7. centos7.5配置ntp时间服务器

    Centos7配置ntp时间服务器 Centos7配置时间服务器,一个服务端,多个客户端,客户端去同步服务端 服务端: 1.先修改时区,否则即使配置完ntp时间也不对,修改时区参照:https://w ...

  8. CHRONY 时间服务器

    时间同步服务chrony ntp network time Protocol之前使用的同步协议 chrony ntp协议的实现,兼容网络中的ntp服务(centos7之后就不再使用ntp,转而使用ch ...

  9. Windows Server 中配置权威时间服务器

    0" style="box-sizing: inherit; outline: none;"> 若要配置 Windows 时间服务以使用内部硬件时钟,请使用下列方法 ...

随机推荐

  1. LeetCode解题报告:Reorder List

    Reorder List Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… Yo ...

  2. OOD/DDP 中的 SRP 原则

    单一职责原则 SRP(The Single Responsibility Principle):一个类应该只有一个发生变化的原因.这里的变化指职责的变化. SRP 很好理解,它的要求是 让一个类只做一 ...

  3. 分布式文件系统MFS(moosefs)实现存储共享(一)

    分布式文件系统MFS(moosefs)实现存储共享 作者:田逸(sery@163.com) from:[url]http://net.it168.com/a2009/0403/270/00000027 ...

  4. 我的第一份vim程序

    vim太好用了吧!!!根本停不下来啊! devc++再见! /*==================================================================== ...

  5. 【异步编程】when.js

    异步编程:When.js快速上手 var api = 'http://qgy18.imququ.com/file/when/d.php?cb=?'; var getData = function() ...

  6. eclipse常见错误

    1.The superclass “javax.servlet.http.httpservlet” is not found in the build path 原因:未添加server librar ...

  7. Screen-Space Bent Cones (SSBC) in Unity5

    噪音少.高度保留了纹理细节 博主近期渲染:最近用unity5弄的一些渲染 ---- by wolf96  http://blog.csdn.net/wolf96

  8. JavaScript 的 Date 最详细解读

    基础的 Date() 就不说了~ :  ) 如何获得某个月的天数? 不知道大家遇到过这个问题吗?我想如果你们写过日期组件一定有这个问题,我当时的解决方案是这样的: 以下的三个方法,month 参数我都 ...

  9. Working XML: Processing instructions and parameters

    Adding support for multiple style sheets This month our hardworking columnist(专栏作家) adds support for ...

  10. 不同车型 不同起步价不同费用的问题(switch语句)

    #include "stdio.h" #include "math.h" main() { int a; float meet,b; printf(" ...