Linux集群time同步方案

前言

下面针对调试环境和生产环境两个方面来解决集群同步问题

生产环境集群时间同步

生产环境要保证服务器时间与外网时间服务器时间保持同步,但是一旦出现断网,需要集群内部按照一个机器的时间进行同步,下面简单的说下思路。

  1. 确定服务器上是否有ntp服务。检查及安装方法!
  2. 配置ntp服务,选择一个能连外网的机器作为时间同步主服务器!将ntp服务设置为开机自动启动服务!
  3. 配置允许网段及集群不从internet上同步时间并重启服务
  4. 在主服务器上编写定时任务同步外网时间
  5. 在从服务器上编写定时任务同步主服务器时间

配置ntp服务

可参考笔者之前写的博客里面有详细配置!

对ntp服务配置文件修改

vim /etc/ntp.conf

改完如下(主体内容)

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).

driftfile /var/lib/ntp/drift

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1

# Hosts on local network are less restricted.
restrict 192.168.58.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

server 127.127.1.0
fudge 127.127.1.0 stratum 10

开启硬件时间同步

 vim /etc/sysconfig/ntpd 
SYNC_HWCLOCK=yes

开启定时任务crontab详解

主服务器编写任务(每1小时同步一次)

sudo crontab -e
* */1 * * * /usr/sbin/ntpdate -u ntp1.aliyun.com & > /home/zhengkw/ntp.log

在从服务器上编写同步任务(每10min同步一次)

*/10 * * * * /usr/sbin/ntpdate -u hadoop107 &> &>/var/log/ntpdate.log

调试环境集群时间同步

调试时可能需要随时修改日期,显然需要一个具有时效性的同步手段!那么我们就利用shell脚本来进行同步解决上述问题!

思路

写一个脚本可以传递参数,参数为一个日期格式,如果不传入参数,默认同步阿里时间服务器!附上一些常用的脚本!

时间同步脚本编写dt.sh

#!/bin/bash
#dt.sh 日期,可以让集群中所有机器的时间同步到此日期
#如果用户没有传入要同步的日期,同步日期到当前的最新时间
if(($#==0))
then
        xcall sudo ntpdate -u ntp1.aliyun.com
        exit;
fi

#dt.sh 日期,可以让集群中所有机器的时间同步到此日期
for((i=102;i<=104;i++))
do
        echo "--------------同步hadoop$i--------------"
        ssh hadoop$i "sudo date -s '$@'"
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值