linux文件实时同步

使用 Rsync 与 Inotify-tools 实现文件实时同步

一、准备

源文件地址:192.168.0.143
目标文件地址:192.168.0.20
请关闭防火墙:systemctl stop firewalld.service
查看防火墙状态:firewall-cmd –state
请将/etc/sysconfig/selinux文件中SELINUX的值为disable,修改后重启linux使修改生效, 否则将影响文件同步
以下步骤达到的效果:
客户端(应用服务器、文件源服务器)192.168.0.143 中进行同步的文件夹下的内容
(/opt/load/)同步复制到服务器(备份服务器、目标服务器)192.168.0.20 中。

二、说明

在客户端中安装 Rsync 与 Inotify-tools,需配置 Inotify-tools 但不需配置 Rsync。

在服务器中安装 Rsync ,需配置 Rsync。

三、安装配置 Rsync

1、于服务器(192.168.0.20)中的安装配置:

1.1、安装命令(在线安装):
yum -y install xinetd rsync

1.2、修改配置:
在 /etc/xinetd.d/rsync 文件中将 disable 从 yes 改为 no
若无这个文件,请自行创建并添加以下内容:
linux文件实时同步_第1张图片

#default:off
#description:The rsync server is a good addition to an ftp serve#r,as it \ allows crc checksumming etc.

service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

1.3、在 /etc/rsyncd.conf 文件下添加:
linux文件实时同步_第2张图片
#配置文件同步
port = 873
uid = root
gid = root
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/run/rsyncd.log
[backup]
path = /opt/upload/
comment = analyse
read only = false
host allow = *

1.4、重新启动 rsync 服务
service xinetd restart

1.5、检测端口:rsync 端口为 873
netstat –natp
linux文件实时同步_第3张图片

2、在客户端(192.168.0.143)中的安装配置:
2.1、安装命令(在线安装):
yum -y install xinetd rsync

四、安装配置 Inotify-tools

1、于客户端(192.168.0.143)中安装 Inotify-tools
Inotify-tools 工具为文件实时监控工具,需要 linux 操作系统内核支持,内核支持版
本至少需要为 2.6.13

1.1、检测操作系统是否支持:
查看版本:Uname –r
sssss
表示版本 3.10.0 大于 2.6.13 则支持。
执行,查看是否默认支持:ll /proc/sys/fs/inotify
linux文件实时同步_第4张图片
有三项输出,表示默认支持 Inotify , 可以安装 Inotify-tools 工具。如果不支持,则 需要采用新版本的 linux 系统,版本达到要求即可以安装 Inotify-tools 工具。

1.2、Inotify-tools 下载地址:
https://github.s3.amazonaws.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar. gz?

1.3、安装 Inotify-tools
将 inotify-tools-3.14.tar.gz 移动至/usr 目录下
解压文件:
tar zxvf inotify-tools-3.14.tar.gz
开始安装:cd inotify-tools-3.14/ 目录下运行 :
./configure 直接安装
make && make install
查看安装是否成功 : ll /usr/inotify-tools-3.14/src/ 生成如下两个文件则安装 成功:
linux文件实时同步_第5张图片

1.4、创建、编辑配置文件
在/usr/inotify-tools-3.14/创建 Inotifyrsync.sh 文件: vi inotifyrsync.sh 添加内容 如下:
linux文件实时同步_第6张图片
#!/bin/bash
src=/opt/load/
/usr/inotify-tools-3.14/src/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M’ --format
‘%T %w%f%e’ -e close_write,delete,create,attrib $src | while read file
do
/usr/bin/rsync -arzuq $src 192.168.0.20::backup/
echo " ${file} was rsynced" >>/opt/soft/log/rsync.log 2>&1
done

1.5、赋予权限:
chmod 755 inotifyrsync.sh

1.6、后台执行:
bash inotifyrsync.sh &

五、测试实时同步

在客户端(192.168.0.143)中的同步文件 /opt/load/下对文件或文件夹做新增、修改、 删除操作,查看服务器(192.168.0.20)中的同步文件夹 /opt/load/下是否有变化。

六、注意事项

1 、 客户端(192.168.0.143) 与 服 务 器 (192.168.0.20) 的 ” 所有者” 与 /etc/rsyncd.conf 文件中的 uid、pid 的值相同。
linux文件实时同步_第7张图片
修改 load 文件夹的 ” 所有者 ”
Chown –r root:root /opt/load/
2、修改/etc/sysconfig/selinux 文件中 SELINUX 的值为 disable,修改后重启 linux 使修改生效,有几个服务器同步就改几个。
linux文件实时同步_第8张图片

配置 ntp 服务实现时间实时同步

一、准备

客户端(应用服务器):192.168.0.143
服务端(备份服务器):192.168.0.20
请关闭防火墙:systemctl stop firewalld.service
查看防火墙状态:firewall-cmd --state
以下步骤达到的效果:
客户端(应用服务器)192.168.0.143 中进行同步中国授时中心的时间,服务端同步
客户端(备份服务器)192.168.0.20 的时间。

二、配置客户端

1、检查是否已安装 ntp 服务 rpm –qa|grep ntp
.
2、安装 ntp 服务 : yum install ntp –y
.
3、修改配置文件:
.
修改/etc/ntp.conf 中只保留以下内容,其余全部使用#注释:
driftfile /var/lib/ntp/drift
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
.
includefile /etc/ntp/crypto/pw
.
keys /etc/ntp/keys
.
restrict 192.168.0.20 mask 255.255.255.0 nomodify #允许服务端向本机发送同步请求
server 210.72.145.44 prefer #同步中国授时中心时间:210.72.145.44 是中国授时中心 ip

4、设置ntp服务开机自启,重启ntp服务:
设置为开机自启:chkconfig ntpd on
启动ntp服务:systemctl start ntpd
重启ntp服务:systemctl restart ntpd
关闭ntp服务:systemctl stop ntpd

三、 配置服务端

1、检查是否已安装 ntp 服务 rpm –qa|grep ntp
.
2、安装 ntp 服务 : yum install ntp –y
.
3、修改配置文件:
修改/etc/ntp.conf 中只保留以下内容,其余全部使用#注释:
driftfile /var/lib/ntp/drift
server 192.168.0.143 #向客户端发送请求,同步客户端时间
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
.
4、设置ntp服务开机自启,重启ntp服务:
设置为开机自启:chkconfig ntpd on
启动ntp服务:systemctl start ntpd
重启ntp服务:systemctl restart ntpd
关闭ntp服务:systemctl stop ntpd

四、 测试

将客户端时间调整一两分钟,随后大约在半小时内恢复至中国授时中心的时间。
将服务端时间调整一两分钟,随后会慢慢恢复至客户端的时间。
date 查看当前时间
ntpstat 查看同步状态

你可能感兴趣的:(知识吧)