在AIX中可以用两种方法来实现应用环境中多台机器的系统时间的统一。一个是启动xntpd 守护进程, 另一个是启动timed进程.
为了保证时间的一致性,在同一台机器上只启动xntpd 或 timed. (在AIX中这两个进程,缺省是不启动。每个AIX系统使用自己的系统时间。)
xntpd
是一个关于网络时间协议的守护进程,它遵循了因特网时间服务器的通用标准。在启动 xntpd 时, xntpd 会读取 /etc/ntp.conf 配置文件来确定网络中系统时钟服务器,以 ntp 服务器的系统时间为标准,来调整本机的系统时间。
可以用 ntpq 命令来显示 xntpd 进程的内部变量。使用 ntp 时应注意,xntpd 服务器和 xntpd 客户端的时钟不能相差超过1000秒。若有大于1000秒的偏移,在客户端启动 xntpd 守护进程前,用 data 命令或 ntpdate 命令调整本机的系统时间,使偏移量在1000秒之内。 然后启动 xntpd.
timed
是一个时钟服务进程。 在一个局域网内可有多个 timed 服务器,但只有一个 timed 主服务器,其余的是 timed 副服务器。当 timed 主服务器功能失效时,其中一个 timed 副服务器可自动变为主服务器。 网络时间可以以 timed 主服务器的系统时间为标准,也可以以所有运行 timed 的主、辅服务器的系统时钟的平均值为准,来调整所有运行 timed 进程的机器的系统时钟。timed 客户机的系统时间与局域网上运行着的 timed 主服务器的系统时间同步,使整个网络运行环境有一个统一的时钟。
NTP 服务器
1. 构造一个NTP环境的基本步骤(假设NTP不是运行在SP上):
1.1 设置NTP 服务器 (MASTER) , 其它NTP客户服务器以此服务器的时间为准,与其进行时间同步.
1.1.1 编辑 /etc/ntp.conf 文件, 内容如下:
----------------------------
#broadcastclient
server 127.127.1.0
driftfile /etc/ntp.drift
tracefile /etc/ntp.trace
----------------------------
请注意文件中的 server 127.127.1.0 这一行, 此处的127.127.1.0 是一特殊的地址,表示NTP主服务器是与自身的系统时钟同步.
1.1.2 编辑好 /etc/ntp.conf后, 启动xntpd守护进程
# startsrc -s xntpd
也可通过调用smitty , 使 xntpd 在以后重启服务器时能自动启动.
# smitty xntpd
1.1.3 xntpd 状态查询 , 使用 #lssrc -ls xntpd
刚启动xntpd时, sys peer 为 'insane', 表明xntpd还没有完成同步, .
#lssrc -ls xntpd
Program name: --/usr/sbin/xntpd
Version: -------3
Leap indicator: 11 (Leap indicator is insane.)
Sys peer: ------no peer, system is insane
...
等待 6 - 10 分钟后, sys peer 就不再是 'insane' 了.
#lssrc -ls xntpd
Program name: --/usr/sbin/xntpd
Version: -------3
Leap indicator: 00 (No leap second today.)
Sys peer: ------127.127.1.0
...
1.2. NTP客户端的设置
注:其实只要执行ntpupdate 就可以同步了,什么都不用改。
可以crontab 里加入 * * * * * /usr/sbin/ntpdate 172.20.1.60 >/dev/null 2>&1 以定时同步
注意 ntpupdate时不能打开xntpd服务!
1.2.1 编辑 NTP 客户端上的 /etc/ntp.conf文件, 内容如下:
----------------------------
#broadcastclient
server 9.185.43.189
driftfile /etc/ntp.drift
tracefile /etc/ntp.trace
----------------------------
其中的 server 9.185.43.189 表明, 此客户端与IP地址为 9.185.43.189 的NTP服务器进行时间同步.
1.2.2 在NTP客户端启动xntpd守护进程
# startsrc -s xntpd
也可通过调用smitty , 使 xntpd 在以后重启服务器时能自动启动.
# smitty xntpd
1.2.3 查询xntpd的状态
当 system peer 不为 'insane' 时, 表明客户端已与服务器端成功地进行了同步.
# lssrc -ls xntpd
Program name: --/usr/sbin/xntpd
Version: -------3
Leap indicator: 00 (No leap second today.)
Sys peer: ------9.185.43.189
...
1.3. NTP客户端查询NTP服务器
ntp客户端使用 ntpdate 命令来确认是否可用指定的 ntp 服务器进行时间同步。
命令的结果会显示客户端与服务器的时间偏移。
#ntpdate -d 9.185.43.189
...
18 Mar 10:52:54 ntpdate[23578]: step time server 9.185.43.189 offset 86323.06827
2 sec
若时间间隔大于1000秒,使用ntpdate 进行调整, 如:
#date
Tue Mar 18 11:06:29 BEIST 2003
#ntpdate 9.185.43.189
19 Mar 11:06:51 ntpdate[23832]: step time server 9.185.43.189 offset 86403.40260
7 sec
#date
Wed Mar 19 11:06:54 BEIST 2003
完成上述操作后 ntp 客户端与 ntp 服务器系统时钟完成同步,ntp 客户端得到了新的系统时间。
2. 使用timed的基本设置步骤如下
2.1. 启动timed服务器
a. 在局域网内,以timed 主服务器的系统时钟为标准,来完成时钟的同步。
# startsrc -s timed -a " -M -c "
b. 在局域网内,以所有运行 timed 的主、辅服务器的系统时间平均值为标准,来完成时钟的同步。
# startsrc -s timed -a " -M “
2.2. 启动timed 客户端, 使其按照标准网络时间来调整自己的系统时钟。
# startsrc -s timed
2.3. 将timed的启动语句加到 /etc/rc.tcpip 中,以便重新启动机器后,timed可自动启动。
参考资料: timed , xntpd command
##############################################################
在局域网中设置Linux时间服务器
作者: 来源:
阅读 224 人次 , 2006-4-5 4:49:00
一 概述:
本文主要目的是简单介绍如何在局域网上设置一台Linux时间服务器与互联网上的时间服务器同步并且如何使局域网上其它Linux及Windows客户向该Linux时间服务器同步。
二 服务器设置
首先说明我们如何设置LAN上的时间服务器同互联网上的第一或者第二级时间服务器同步来保证精确的时间。
1. 如何让LAN的时间服务器(第三级)与互联网上的时间服务器(第一或者第二级)同步
a. XNTP包,包含在大多数Linux CD里面。
主页在
你只需要在/etc/ntp.conf中设置server和driftfile两项参数即可,server项你可以从上面的主页中找公共的时间服务器域名。例如
server rackety.udel.edu
server umd1.umd.edu
server lilben.tn.cornell.edu
driftfile /etc/ntp/drift
然后启动XNTPD后台程序
#/etc/rc.d/init.d/xntpd start
b. "getdate",随Slackware而来的小程序,推荐使用,大多数时候,我们对时间的精确性要求不是非常的苛刻,所以这个程序完全够用而且很方便。
下载
然后设置下面的scripts 取名为/usr/local/sbin/get-date.sh
#!/bin/sh
timehosts="otc2.psu.edu wwvb.erg.sri.com ntp.nasa.gov"
if /usr/local/bin/getdate -adjust 10 200 $timehosts > /dev/null; then
/sbin/clock --systohc
fi
现在可以设置cronjob每小时进行同步
0 0-23 * * * /usr/local/sbin/get-date.sh
2. 如何使得LAN上其它linux/windows客户与该台服务器同步
a. 如果该台时间服务器也是局域网上的Samba服务器,则对Windows来说,不需要安装任何时间同步软件,因为windows客户可以用
net time \timeserver /set /yes来与之同步。可以放该命令在startup
中自次启动windows时自动同步
net time 命令利用Netbios over TCP/IP协议来同步时间
但仅对Windows客户有效,Linux客户无法使用。
b. 如果服务器运行NTP后台服务程序,例如前面讲的XNTPD,则对
Windows:
可以安装下面的两个免费软件与服务器同步
(ntptime)
单一的后台程序,自动寻找LAN上的NTP服务器,可在控制面板中设置同步条件
(Nettime)
支持NTP(udp/123) , time(udp/37), time(tcp/37)
Linux:
则可以用ntpdate(随XNTPD而来)运行作为cronjob 与 该局域网上的时间服务器同步。
c. 如果该台服务器使用getdate与互联网上时间服务器同步,则
你可以设置/etc/inetd.conf,打开time udp和time tcp服务,让linux/windows客户与之同步。对windows,你可以使用象上面介绍的Nettime软件。
对Linux客户,你可以用rdate -s 运行作为cronjob 与之同步
time stream tcp nowait root internal
time dgram udp wait.200 root internal
Linux下的rdate -s 命令使用time (37/tcp) , Nettime 你可以指定37/tcp或者37/udp
三 FAQ
1. 怎样确定net time用的是Netbios over TCP/IP?
在Samba服务器上运行tcpdump
# /usr/sbin/tcpdump host 192.168.1.3
(192.168.1.3是windows客户端的IP地址)
2. 怎样确定windows NTP客户ntptime正在后台与Linux NTP时间服务器同步?
在NTP服务器上运行
# tcpdump udp port 123
查看输出
默认是每五分钟ntptime向NTP服务器查询一次,你可以从主页上下载控制面板中的控制条件设置程序
阅读(1001) | 评论(0) | 转发(0) |