您的位置:首页 > 运维架构 > Linux

Linux、Windows时间同步

2015-07-26 10:04 489 查看

1.1
设置Linux服务器的时间同步

NTP(Network Time Protocol)服务即时间同步服务,用于计算机的时钟同步。

本文档选择1号机ADS为NTP服务器,2号机、3号机、4号机、6号机都以1号机为准,进行时间同步,则1号机为NTP服务端,2号机、3号机、4号机和6号机为NTP客户端。

这里的配置只是针对测试及小型环境,如果是实际环境请参考专业的NTP服务器安装配置文档,例如技术服务部提供的《NTP服务安装配置手册2011.9.24.doc》。

1.1.1
检查NTP服务

一般情况下,Linux操作系统默认安装了NTP服务。检查1号机、2号机、3号机、4号机、6号机,是否安装了NTP服务。

如果NTP客户端不安装NTP服务,可能影响时间同步的精确度,如果对时间同步的精确度要求不高的话,可以只在服务端安装NTP服务。

步骤 1 以root用户登录服务器。

步骤 2 检查是否安装了NTP服务。

service ntpd status

如果显示“ntpd”信息,如下所示,则表示服务器上已安装了NTP服务。

ntpd (pid 10410 10408) 正在运行...

如果服务器上未安装NTP服务,请参考下面步骤进行安装NTP服务。如果已安装NTP服务,请直接跳过此步骤。

步骤 3 从Linux的安装光盘中找到NTP的安装包,如:ntp-4.1.2-4.EL3.1.i386.rpm。

步骤 4 将NTP的安装包上传至服务器“/tmp”目录下。

步骤 5 进入“/tmp”目录。

cd /tmp

步骤 6 安装NTP服务。

rpm -ivh ntp-4.1.2-4.EL3.1.i386.rpm

----结束

1.1.1
设置NTP服务端

这里以1号机为例介绍NTP服务端的配置。

步骤 1 以root用户登录NTP服务端。

步骤 2 设置NTP服务端的时间。

1. 输入命令检查时间。

date

如果显示的时间与当前时区的标准时间不一致,请根据下面方法进行修改:

l 如果日期不一致,请使用如下命令进行修改,yy表示年份,mm表示月份,dd表示日期。

date -s yy/mm/dd

例如:如需修改为2011年7月13日,请输入命令:date -s 2011/07/13,按键盘“Enter”键,系统显示如下信息,表示修改成功:

2011年 07月 13日 星期三 15:31:09 CST

l 如果时间不一致,请使用如下命令进行修改,hh表示小时,mm表示分钟,ss表示秒。

date -s hh:mm:ss

例如:如需修改为15点31分09秒,请输入命令:date -s 15:31:09,按键盘“Enter”键,系统显示如下信息,表示修改成功:

2011年 07月 13日 星期三 15:31:09 CST

2. (可选)强制把系统时间写入CMOS。

在系统启动时,Linux操作系统从CMOS中读取系统时间。为了保证系统时间与CMOS时间的一致性,Linux每隔一段时间(大约是11分钟)会将系统时间写入CMOS,如果执行date -s后,马上重启机器,修改时间就有可能没有写入CMOS。

hwclock -w

CMOS(Complementary Metal Oxide Semiconductor),常指保存计算机启动信息(如日期、时间、启动设置等)的芯片。

步骤 3 配置NTP服务端。

1. 打开“/etc/ntp.conf”文件。

vi /etc/ntp.conf

在文件的最后一行添加如下一行:

restrict 172.30.84.0 mask 255.255.255.0 nomodify notrap

表示172.30.84.0~172.30.84.254这个IP范围的服务器都可以通过NTP服务端进行时间同步,即2号机、3号机、4号机、6号机都能以1号机为准,进行时间同步。

2. 将配置文件中的如下3句注释掉,注释语句需在每行前加“#”。

#server 0.rhel.pool.ntp.org

#server 1.rhel.pool.ntp.org

#server 2.rhel.pool.ntp.org

3. 按“Esc”键后,输入“:wq!”保存并退出。

步骤 4 检查NTP服务状态。

service ntpd status

显示如下信息,则表示NTP服务启动成功。

Starting ntpd: [ OK ]

请重启NTP服务。

service ntpd restart

若NTP服务未启动,则请启动NTP服务。

service ntpd start

步骤 5 时间信息的传输使用UDP协议的123端口,请确保123端口以udp方式开放。

netstat -an |grep 123

显示信息如下,则表示123端口开放。

tcp 0 0 172.30.84.192:1521 172.30.84.103:41123 ESTABLISHED

udp 0 0 172.30.84.192:123 0.0.0.0:*

udp 0 0 127.0.0.1:123 0.0.0.0:*

udp 0 0 0.0.0.0:123 0.0.0.0:*

udp 0 0 ::1:123 :::*

udp 0 0 fe80::2e0:4cff:fe97:123 :::*

udp 0 0 :::123 :::*

如果没有显示信息则表示没有开放,需要关闭防火墙。

关闭防火墙命令如下:

service iptables stop

----结束

1.1.2
设置NTP客户端

以1号机为准,对2号机、3号机、4号机和6号机进行时间同步。

这里以2号机为例介绍设置NTP客户端的方法。

步骤 1 以root用户登录NTP客户端(2号机)。

步骤 2 关闭NTP客户端的NTP服务。如不关闭,可能导致时间同步失败。

service ntpd stop

步骤 3 在NTP客户端配置时间同步。

ntpdate 172.30.84.11

其中172.30.84.11是NTP服务端1号机的IP地址。

l 如果显示如下信息,表示同步成功。

31 Aug 02:43:21 ntpdate[17266]: step time server 172.30.84.11 offset -43154.812483 sec

参考上面的步骤,在3号机、4号机和6号机执行时间同步操作。

此时使用date命令查看各NTP客户端的时间,是否与NTP服务端的时间一致。

l 如果显示如下信息,表示还没同步完成。

31 Aug 14:23:01 ntpdate[17023]: no server suitable for synchronization found

此时NTP服务端正在进行时间同步,需要过一段时间才能完成同步,请过一段时间再执行“ntpdate 172.30.84.11”命令,再次进行时间同步。

步骤 4 设置定时计划任务。

1. 打开计划任务文件。

crontab -e

2. 按“i”键进入编辑状态,在文件末尾增加如下内容,表示每过五分钟执行一次时间同步。

05 * * * * /usr/sbin/ntpdate 172.30.84.11

3. 按“Esc”键后,输入“:wq!”保存并退出文件。

4. 查看定时任务。

crontab -l

----结束

1.2
设置Windows服务器的时间同步

以1号机作为NTP服务器,2、3、4、6号机作为NTP客户端,同步1号机的时间。而5号机是Windows操作系统,也需要同步1号机的时间。

这里以1号机作为NTP服务器,5号机(Windows服务器)作为NTP客户端,来描述5号机(Windows服务器)的配置步骤。

步骤 1 1号机(NTP服务器)必须开启NTP服务并且配置好。详细请参见4.4.2 章节。

步骤 2 5号机(Windows环境)上需开启Windows Time服务。

1. 单击“开始 > 控制面板”进入控制面板。

2. 选择“管理工具”,双击进入管理工具窗口。

3. 选择“计算机管理”,双击进入“计算机管理”窗口。

4. 在窗口左边导航栏中选择“服务和应用程序 > 服务”,窗口右边选择“Windows Tims”选项。

5. 单击鼠标右键弹出选项框,选择“启动”即可。如下图所示:

图1-1 启动Windows Time服务

步骤 3 在ADP安装包中bat文件夹里,确认已经获得如下脚本文件。如未获取,请与相关支持人员联系。

表1-1 需要获取的脚本文件

文件名称

文件说明

ntp_config.bat

NTP时间同步配置脚本。

window_plan_job.bat

NTP时间同步计划脚本。

步骤 4 在5号机(Windows环境)中,单击“开始 > 运行”,在打开框中输入“cmd”进入DOS命令窗口。

步骤 5 将ntp_config.bat脚本、window_plan_job.bat脚本放在Windows中的一个目录中,如:C:

步骤 6 打开ntp_config.bat脚本,配置NTP服务器(这里即ADS服务器)的IP地址。

即修改如下ntp_config.bat脚本中蓝色标识的地方。

@echo off

cd \

echo "ADP 时间更新程序 For Windows平台"

echo "开始配置NTP Server"

w32tm /config /manualpeerlist:172.21.11.119,0x8 /syncfromflags:MANUAL

echo "重新启动windows time服务"

net stop w32time

net start w32time

echo "开始同步时间"

w32tm /resync

@pause

@echo "执行window_plan_job.bat定期执行.按任意键退出!"

步骤 7 在DOS窗口中执行ntp_config.bat脚本。

cd\

ntp_config.bat

执行结果如下图所示。Windows Time服务已经启动,并且Windows客户端已同步了NTP服务端的时间。

图1-1 NTP脚本执行结果1

步骤 8 打开window_plan_job.bat脚本,配置每天具体什么时间同步一次时间。

即修改如下window_plan_job.bat脚本中蓝色标识的地方。

at 00:30 /every:m,t,w,th,f,s,su w32tm /resync

步骤 9 定期执行时间同步的脚本。即可配置每天什么时间到NTP服务器中同步一次时间。

1. 执行window_plan_job.bat脚本。

window_plan_job.bat

执行结果如下图所示。系统显示新加一项作业。

图1-1 NTP脚本执行结果2

2. 使用“at”命令查看其作业。

图1-1 at查看时间同步作业

3. 一般此脚本执行一次即可,无需多次执行生成多次时间同步计划的作业。如果需要删除当前的时间同步作业,可使用“at /delete”命令进行删除。

如下图所示,系统提示是否继续此操作,输入“y”按回车即可。

图1-1 删除时间同步作业

----结束
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: