前一阵子,在处理Web系统数据时,由于几台服务器上的时间不一致,导致数据时间的不准确,出现了错乱。在更严格的服务上,因为服务器时间不准确或是不一致,很有可能会带来安全或是功能的隐患。因而,有必要采取措施保证网络中的服务器上的时间同步。这里,我们先看看使用NTP服务如何实现同步时间。
Network Time Protocol(NTP),即网络时间协议,它的目的是在国际互联网上传递统一、标准的时间。NTP服务器将本地系统的时钟与一个公共的NTP服务器同步然后作为时间主机提供服务,使本地网络的所有客户端能同步时钟。
NTP服务的安装、配置、使用这里就不再细说了(不了解的可以google下)。我们知道在NTP服务器启动后,NTP客户端可以通过手动执行“ntpdate 服务器IP”来同步时间,或是通过配置NTP客户端定时进行时间同步。(当然,需要保证NTP服务器和客户端的之间没有防火墙Block它们的通信。)
下面我们接着来看,如何在我们的环境中拥有上百台机器,为了同步时间,不想手动的在每台机器上去运行ntpdate同步命令或是配置,你要知道几百台机器,你登陆再运行一次命令,也是需要耗费你很多的时间。当然,你要是部署每个服务器的时候就已经建好了NTP服务器,那还是可以那时候就进行NTP客户端的配置。但我们以前没这么做,那只有现在从头开始了。手工活太累太麻烦了,我们做个脚本,在NTP服务器上运行一次,就让所有服务器都同步一次时间。
我们就来看看如何来使用最简单的方式来达到这个功能。Linux的ssh提供了一个远程执行命令的方式,现在就来用它来让每个服务器向NTP服务器来同步一次时间。ssh访问有两种方式:密码方式、公钥方式。使用秘钥方式,我们需要保存所有服务器的ip地址、用户、密码。你如果觉得不安全,那可以建立密钥方式访问,这时需要一些手工配置,当配置好使用公钥方式后,就可以不输入密码访问对方。
那就来看看脚本吧,脚本1是使用公钥方式进行访问的,脚本2是使用密码访问的,其中服务器信息都保存在/tmp/servers.txt文件中。
脚本1:
#!/bin/sh
#in the servers.txt
#username1 server1
SERVERS=”/tmp/servers.txt”
CMD=”ntpdate ntp_server”
while read line; do
set — $line
username=$1
server=$2
ssh $username@$server $CMD
done < $SERVERS
脚本2:
#!/usr/bin/expect
set SERVERS “/tmp/servers.txt”
set CMD “ntpdate ntp_server”
set fp [open $SERVERS]
while {-1 != [gets $fp line]} {
set ln [split $line " "]
set username [lindex $ln 0]
set passwd [lindex $ln 1]
set server [lindex $ln 2]
spawn ssh $username@$server $CMD;
expect “*password: “;
send “$passwd ”;
interact;
}
相关推荐
a book about NTP 《COMPUTER NETWORK TIME SYNCHRONIZATION: The Network Time Protocol on Earth and in Space》
Network Time Protocol (NTP) 也是RHCE新增的考试要求. 学习的时候也顺便复习了一下如 何设置Linux的时间,现在拿出来和大家分享 设置NTP服务器不难但是NTP本身是一个很复杂的协议. 这里只是简要地介绍一下实践方法 ...
标题中的“Synchronize Your System Time with a Network Time Protocol (NTP) Server”指的是通过网络时间协议(Network Time Protocol)同步计算机系统时间的过程。NTP是一种用于在互联网上同步计算机时间的协议,...
NTP(Network Time Protocol,网络时间协议)是一种用于在计算机网络中同步计算机时间的协议。在信息技术领域,尤其是在分布式系统和数据中心中,精确的时间同步至关重要,因为它涉及到许多关键操作,如日志记录、...
**NTP**(Network Time Protocol)是一种用于在分布式时间服务器与客户端之间进行时间同步的网络协议。NTP旨在提供一种高精度、安全的方法来同步网络中各种设备的时间。它是目前最广泛使用的时间同步协议之一,尤其...
NTP ppt
Network Time Protocol(NTP)被广泛用于确保网络上的设备具有准确一致的时间。本篇文章将详细介绍如何使用C++编程语言和Boost库来实现一个NTP客户端,以便于进行网络时间同步。 Boost是一个流行的开源C++库集合,...
- SNTP能够在简单的、无状态的远程过程调用(RPC)模式下运行,类似于UDP/TIME协议(见RFC-868)的准确性和可靠性。 - SNTP版本4对NTP规格没有做出任何更改,而是对某些设计特点进行了澄清,以便于更简单的操作。 ...
Learn the risks associated with Network Time Protocol (NTP) security and how to minimize those risks while deploying and managing the protocol. You will be able to reduce the disruption of ...
NTP,即Network Time Protocol(网络时间协议),是一种用于同步计算机系统时钟的时间同步协议。该协议在互联网上广泛使用,以确保不同设备之间的时间一致性。NTP通过在客户端与服务器之间交换时间戳来实现时间同步...
NTPv4(Network Time Protocol version 4)是互联网上用于同步计算机时钟的一个关键协议。ntp-4.2.8p8是NTPv4的一个特定版本,它提供了对NTP协议的全面实现和一个简化版的NTP服务器。这个源代码库是学习和理解NTP...
在提供的压缩文件"apacheds-protocol-ntp-1.0.1.jar.zip"中,包含的是ApacheDS的一个特定组件——NTP(Network Time Protocol)协议的支持库。 NTP是一种互联网时间同步协议,它的主要目的是在不同的计算机网络之间...
NTP(Network Time Protocol,网络时间协议)是一种用于在互联网上同步计算机时钟的协议,确保多台设备间的时间保持一致。在IT领域,尤其是在分布式系统、云计算和数据分析等需要精确时间戳的应用中,时间同步至关...
NTP(Network Time Protocol,网络时间协议)就是用来实现这种时间同步的一种标准协议。本文将围绕“ntp time server monitor 1.04”这一软件,深入探讨NTP时间服务器的监控及其重要性。 NTP时间服务器监控软件1.04...
Network Time Protocol(NTP,网络时间协议)用于同步它所有客户端时钟的服务。NTP服务器将本地系统的时钟与一个公共的NTP服务器同步然后作为时间主机提供服务,使本地网络的所有客户端能同步时钟。 同步时钟最大的...
NTP(Network Time Protocol)时间服务器就是实现这一目标的关键技术。"ntp_time_server_monitor.zip"是一个专门针对NTP时间服务器监控的实用工具,它提供了直观的图形用户界面,方便用户对本地NTP服务进行配置和...
NTP(Network Time Protocol,网络时间协议)是互联网上用于同步计算机时钟的一种协议,确保分布式系统中的时间准确。在给定的“ntp.rar”压缩包中,包含了一个名为“ntp.c”的C语言源代码文件,它实现了NTP协议,...
The Network Time Protocol (NTP) is used to synchronize a computer's time with another reference time source. This package includes ntpd (a daemon which continuously adjusts system time) and utilities ...
NTP(Network Time Protocol)是一种同步网络时间的协议,用于确保网络中的所有设备和系统使用同一个时间标准。在 Solaris 10 中,NTP 服务端和客户端配置是非常重要的,以确保系统时间的准确性和同步性。 一、NTP ...