一 ntp相关知识

什么是时间同步服务器

Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。

NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。 NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。按照离外部UTC 源的远近将所有服务器归入不同的Stratum(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构相互连接,而Stratum-1的时间服务器是整个系统的基础。

时间同步在真实环境中使用较多,不同机器时间不一致,向同一台数据库服务器写数据会出问题。这仅仅只是一个应用。

在学习时间同步服务器之前,我们先了解下时间相关的命令:

#查看时间
[root@serv01 ~]# date
Wed Aug 7 17:47:44 CST 2013
[root@serv01 ~]# date -s "" #查看时区
[root@larrywen /]# cat /etc/sysconfig/clock
# The time zone of the system is defined bythe contents of /etc/localtime.
# This file is only for evaluation bysystem-config-date, do not rely on its
# contents elsewhere.
ZONE="Asia/Chongqing" #可以重新设置时区
[root@larrywen /]# system-config-date #查看不同地区的时区信息
[root@larrywen /]# ls /usr/share/zoneinfo/
Africa Australia Cuba Etc GMT0 Iceland Japan MST Poland right Universal Zulu
America Brazil EET Europe GMT-0 Indian Kwajalein MST7MDT Portugal ROC US
Antarctica Canada Egypt Factory GMT+0 Iran Libya Navajo posix ROK UTC
Arctic CET Eire GB Greenwich iso3166.tab MET NZ posixrules Singapore WET
Asia Chile EST GB-Eire Hongkong Israel Mexico NZ-CHAT PRC Turkey W-SU
Atlantic CST6CDT EST5EDT GMT HST Jamaica Mideast Pacific PST8PDT UCT zone.tab #设置时区不重要,重要的是不同机器之间的时间同步起来
[root@serv01 ~]# cat /etc/sysconfig/clock
ZONE="Asia/Chongqing"
[root@serv01 ~]# date
Wed Aug 7 09:52:31 CST 2013 #修改时区
[root@serv01 ~]# date
Wed Aug 7 09:52:31 CST 2013
#修改成日本时区
[root@serv01 ~]# vim /etc/sysconfig/clock
[root@serv01 ~]# cat /etc/sysconfig/clock
ZONE="Asia/Tokyo"
#拷贝内容
[root@serv01 ~]# cp/usr/share/zoneinfo/Asia/Tokyo /etc/localtime
cp: overwrite `/etc/localtime'? Y
#查看时间,发现立即改变,不需要重启
[root@serv01 ~]# date
Wed Aug 7 10:55:44 JST 2013 #使用工具修改时间
#安装工具
[root@serv01 ~]# yum install/usr/bin/system-config-date -y
[root@serv01 ~]# yum installsystem-config-date -y
#安装system-config-date的时候会把ntp服务器安装上 #支持X Window的形式登录
[root@larrywen 0807]# ssh 192.168.1.11 -X
root@192.168.1.11's password:
Last login: Wed Aug 7 18:19:30 2013 from 192.168.1.1
/usr/bin/xauth: creating new authority file /root/.Xauthority
#修改时间,改成重庆时区
[root@serv01 ~]# system-config-date
Gtk-Message: Failed to load module"pk-gtk-module": libpk-gtk-module.so: cannot open shared object file:No such file or directory
[root@serv01 ~]# cat /etc/localtime
[root@serv01 ~]# date
Wed Aug 7 10:03:22 CST 2013

硬件时钟和软件时钟

Linux将时钟分为系统时钟(SystemClock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,也就是软件时钟。而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的“Standard BIOS Feture”项中进行设置。

#同步硬件时钟和软件时钟
[root@serv01 ~]# clock --help
hwclock - query and set the hardware clock(RTC) Usage: hwclock [function] [options...] Functions:
-s | --hctosys set the system time from the hardware clock
-w | --systohc set the hardware clock to the currentsystem time #ntp:Network TimeProtocal

二 ntp同步时间

#第一步,安装ntp
[root@serv01 ~]# yum install ntp* -y #查询安装的RPM包
[root@serv01 ~]# rpm -qa|grep ntp
ntp-4.2.4p8-2.el6.x86_64
ntpdate-4.2.4p8-2.el6.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
[root@serv01 ~]# chkconfig|grep ntp
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ntpdate 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@serv01 ~]# ls /etc/ntp.conf
/etc/ntp.conf
[root@serv01 ~]# rpm -ql ntp #第二步,修改配置文件
[root@serv01 ~]# vim /etc/ntp.conf
[root@serv01 ~]# man 5 ntp.conf [root@serv01 ~]# vim /etc/ntp.conf
[root@serv01 ~]# cat /etc/ntp.conf
#配置如下
restrict 192.168.1.0 mask 255.255.255.0nomodify notrap
#注释上一级时间同步服务器
#server 0.rhel.pool.ntp.org
#server 1.rhel.pool.ntp.org
#server 2.rhel.pool.ntp.org
#取消注释
server 127.127.1.0 # local clock
fudge 127.127.1.0stratum 10 #第三步,启动服务
[root@serv01 ~]# /etc/init.d/ntpd start
Starting ntpd: [ OK ]
#重启后生效
[root@serv01 ~]# chkconfig ntpd on
[root@serv01 ~]# chkconfig|grep ntpd
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ntpdate 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@serv01 ~]# #serv02的配置
[root@serv02 ~]# vim /etc/ntp.conf
[root@serv02 ~]# cat /etc/ntp.conf
server 192.168.1.11
[root@serv02 ~]# vim /etc/ntp/step-tickers
[root@serv02 ~]# cat /etc/ntp/step-tickers
# List of servers used for initialsynchronization.
192.168.1.11
[root@serv02 ~]# date
Wed Aug 7 18:30:18 CST 2013
[root@serv02 ~]# /etc/init.d/ntpdate start
ntpdate: Synchronizing with time server: [ OK ]
[root@serv02 ~]# date
Wed Aug 7 10:29:39 CST 2013

三 ssh双向等效性验证时间同步服务器

#serv01
[root@serv01 ~]# ssh-keygen
[root@serv01 ~]# ssh-copy-id -i~/.ssh/id_rsa.pub 192.168.1.12
[root@serv01 ~]# ssh-copy-id -i~/.ssh/id_rsa.pub 192.168.1.11 #serv02
[root@serv02 ~]# ssh-keygen
[root@serv02 ~]# ssh-copy-id -i~/.ssh/id_rsa.pub 192.168.1.11 #可以查看同步的时间
[root@serv01 ~]# ssh 192.168.1.11 date; ssh192.168.1.12 date;
Wed Aug 7 10:34:50 CST 2013
Wed Aug 7 10:34:50 CST 2013 #修改时间
[root@serv01 ~]# date -s"10:38:00"
Wed Aug 7 10:38:00 CST 2013 #查看serv02的时间
[root@serv02 ~]# date
Wed Aug 7 10:35:42 CST 2013
#关闭服务
[root@serv02 ~]# /etc/init.d/ntpdate stop
#开启服务
[root@serv02 ~]# /etc/init.d/ntpdate start
ntpdate: Synchronizing with timeserver: [ OK ]
#可以看到已经同步了
[root@serv01 ~]# ssh 192.168.1.11 date; ssh192.168.1.12 date
Wed Aug 7 10:38:57 CST 2013
Wed Aug 7 10:38:57 CST 2013 [root@serv02 ~]# ntpq -p 192.168.1.11
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) .LOCL. 10 l 33 64 377 0.000 0.000 0.000 #使用命令同步,并将同步命令做成死循环
[root@serv02 ~]# ntpdate 192.168.1.11
7Aug 23:02:44 ntpdate[1342]: adjust time server 192.168.1.11 offset 0.000041 sec
#可以看到已经同步了
[root@serv01 ~]# ssh 192.168.1.11 date; ssh192.168.1.12 date
Wed Aug 7 23:02:53 CST 2013
Wed Aug 7 23:02:53 CST 2013
[root@serv01 ~]# date -s "10:50"
Wed Aug 7 10:50:00 CST 2013 [root@serv02 ~]# ntpdate 192.168.1.11
7Aug 10:51:10 ntpdate[1372]: step time server 192.168.1.11 offset -43989.248450sec
[root@serv01 ~]# ssh 192.168.1.11 date; ssh192.168.1.12 date
Wed Aug 7 10:51:15 CST 2013
Wed Aug 7 10:51:15 CST 2013 #写成死循环
[root@serv02 ~]# while :; do ntpdate192.168.1.11; sleep 3; done
7Aug 10:53:27 ntpdate[1380]: adjust time server 192.168.1.11 offset -0.000066sec
7Aug 10:53:31 ntpdate[1382]: adjust time server 192.168.1.11 offset 0.000133 sec
[root@serv01 ~]# date -s "10:57"
Wed Aug 7 10:57:00 CST 2013
[root@serv01 ~]# ssh 192.168.1.11 date; ssh192.168.1.12 date
Wed Aug 7 10:57:12 CST 2013
Wed Aug 7 10:57:13 CST 2013 #可以放到后台执行
[root@serv02 ~]# while :; do ntpdate192.168.1.11; sleep 3; done > /dev/null 2>&1 & #写到配置文件,下次启动自动执行
[root@serv02 ~]# vim /etc/rc.local
[root@serv02 ~]# tail -n1 /etc/rc.local
while :; do ntpdate 192.168.1.11; sleep 3;done >/dev/null 2>&1 & #另外一种方式(不安全:在同一网段的任何人都可以使用)
serv01
[root@serv01 ~]# chkconfig xinetd on
[root@serv01 ~]# vim /etc/xinetd.d/
chargen-dgram daytime-dgram discard-dgram echo-dgram tcpmux-server time-stream
chargen-stream daytime-stream discard-stream echo-stream time-dgram
#将disbale由yes改为no
[root@serv01 ~]# vim/etc/xinetd.d/time-stream
#将disbale由yes改为no
[root@serv01 ~]# vim/etc/xinetd.d/time-dgram
#也可以这样打开
[root@serv01 ~]# chkconfig time-stream on
[root@serv01 ~]# chkconfig time-dgram on #启动xinetd服务
[root@serv01 ~]# /etc/init.d/xinetd start
Starting xinetd: [ OK ] #安装openssh-clients
[root@serv01 ~]# yum installopenssh-clients -y
#制作公钥
[root@serv01 ~]# ssh-keygen
#拷贝到本机
[root@serv01 ~]# ssh-copy-id -i.ssh/id_rsa.pub 192.168.1.11
#拷贝到serv02
[root@serv01 ~]# ssh-copy-id -i.ssh/id_rsa.pub 192.168.1.12
#设置时间
[root@serv01 ~]# date -s"11:36:00"
Wed Aug 7 11:36:00 CST 2013
#安装rdate
[root@serv02 /]# yum install rdate -y
#同步时间
[root@serv02 /]# rdate -s 192.168.1.11
[root@serv01 ~]# ssh 192.168.1.11 date; ssh192.168.1.12 date;
Wed Aug 7 11:36:29 CST 2013
Wed Aug 7 11:36:28 CST 2013 #可以写死循环
[root@serv02 ~]# while :; do rdate -s192.168.1.11; sleep 3; done >/dev/null 2>&1 &^C
[root@serv02 ~]# vi /etc/rc.local
[root@serv02 ~]# tail -n1 /etc/rc.local
while :; do rdate -s 192.168.1.11; sleep 3;done >/dev/null 2>&1 &
我的邮箱:wgbno27@163.com  新浪微博:@Wentasy27
微信公众平台:JustOracle(微信号:justoracle)
数据库技术交流群:336882565(加群时验证 From CSDN XXX)
By Larry Wen
 
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客]

服务管理——ntp的更多相关文章

  1. Linux服务管理之ntp

    NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议. 在计算机的世界里,时间非常地重要,例如对于火箭发射这种科研活动,对时间的统一性和准确性要 ...

  2. linux服务之ntp与chrony

    centos7.2变成了chrony RHEL从7.0开始改用chrony同步时间,原ntp同步方式也可以使用,但要安装ntp服务. [root@1st-kvm plymouth]# rpm -qa| ...

  3. centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课

    centos linux系统日常管理3  服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...

  4. linux服务之NTP及chrony时间同步

    博客园 首页 联系 管理   linux服务之NTP及chrony时间同步   一.NTP时间同步 NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步 ...

  5. 第11章 Linux服务管理

    1. 服务分类 (1)Linux的服务 ①Linux中绝大多数的服务都是独立的,直接运行于内存中.当用户访问时,该服务直接响应用户,其好处是服务访问响应速度快.但不利之处是系统中服务越多,消耗的资源越 ...

  6. CentOS 7 (RHEL 7)服务管理命令的变化

    CentOS 7 (RHEL 7)带来了新的服务管理命令,为了保持兼容原有的命令仍可以使用,以下是新旧命令的对照. 启动.停止.重启.重载.检查服务:6: service httpd start|st ...

  7. PC管理端与评委云打分配合步骤及疑难问题汇编,即如何使用PC管理端的云服务管理功能

    一.前期环境及数据准备 A.PC管理端主要流程 1.进入菜单 编辑/选项/服务器 界面,如下图所示,采用我官方所提供的云服务,不采用自己假设的AppWeb服务. 切记:AppWeb服务和云服务只能二选 ...

  8. Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )

    以 apache/httpd 服务作为例子 任务 Red Hat / Fedora Ubuntu Ubuntu (with sysv-rc-conf or sysvconfig) 立即启动/停止某服务 ...

  9. Centos6.5 设置Tomcat8 service服务实现自启动和服务管理

    Centos6.5 设置Tomcat8 service服务实现自启动和服务管理 将tomcat设置成像apache,nginx一样. 用serviec xxxx start/stop/restart ...

随机推荐

  1. Seafile 推出 “分布式文件同步技术” 打造的私有云服务

    近两年来 Dropbox 等云储存服务迅速窜红,各大巨头纷纷推出自家的云储存服务(苹果的 iCloud, 微软的 SkyDrive, Google 即将推出的 GDrive),国内也有类似的服务(金山 ...

  2. 生成war的jdk版本高于tomcat使用的jdk版本,导致项目不能正常被访问

    记录一个耽误30分钟的一个坑: 生成war的jdk版本高于tomcat使用的jdk版本,导致项目不能正常被访问 报404错误

  3. 关于CoreData的理解和使用.

    CoreData是苹果官方推出的一种方便的面向对象的存储方式,相信大家都已经对其有所了解,但是对于CoreData的概念大家都存在部分的误区.给大家推荐个网址是苹果的官方文档的翻译版(http://o ...

  4. 移动端WEB开发 代码片段

    WebApp是指基于Web的系统和应用,其作用是向广大的最终用户发布一组复杂的内容和功能(不明白说的是什么).其实Web APP就是一个针对Iphone.Android等智能手机优化后的web站点,它 ...

  5. linux-telnet服务配置

    Telnet服务的配置:一.安装telnet软件包(通常要两个)1. telnet-client (或 telnet),这个软件包提供的是 telnet 客户端程序: 2. telnet-server ...

  6. .NET cookie 使用方法

    创建 C# cookie,两种方法 Response.Cookies["userName"].Value = "patrick"; Response.Cooki ...

  7. Linq to sql 实现多条件的动态查询(方法一)

    /// <summary> /// Linq to sql 多字段动态查询 /// </summary> /// <returns></returns> ...

  8. Sql Server数据库基础

    --------------------------------------第一章  Sql Server数据库基础------------------------------------------ ...

  9. Spring随笔 - 事务传播行为

    Spring定义了7种不同的事务传播行为: PROPAGATION_MANDATORY:表示该方法必须在事务中运行.如果当前事务不存在,则会抛出一个异常. PROPAGATION_NESTED:表示如 ...

  10. Javascript 完美运动框架——逐行分析代码,让你轻松了解运动的原理

    大家一听这名字就知道,有了这套框架 网上的效果基本都是可以实现的.实际上之前的运动框架还是有局限性的,就是不能让好几个值一块运动. 那这个问题怎么解决呢? 我们先来看看之前的运动框架 function ...