Centos7 rsync+inotify两台服务器同步文件(单向)
注:本篇介绍的是单向同步,即A文件同步到B,但B的文件不同步到A,双向同步的在下一篇文章中。
rsync与inotify不再赘述,直接进入实战。
0、背景
两台服务器IP地址分别为:
源服务器:192.168.43.159
目标服务器:192.168.43.231
同步方向:从源服务器(192.168.43.159)的/root/test目录下的所有对文件的增删改实时同步到目标服务器(192.168.43.231)的/root/www_bak/目录下,但反向不同步。
源服务器下需要安装rsync和inotify,目标服务器仅需安装rsync,源服务器做为server端,实时的向目标服务器client端发送数据
一、源服务器配置
1、
先查看本机是否已安装rsync
查看命令rpm -qa |grep rsync
下载好安装包后进入到安装包并增加安装后缀,安装到/usr/local/rsync路径下
[root@nginx rsync-3.0.9]# ./configure --prefix=/usr/local/rsync
[root@nginx rsync-3.0.9]# make
[root@nginx rsync-3.0.9]# make install
注:安装路径非常重要,后续要启动rsync服务必须使用该目录下的文件
2、设置密码文件
[root@nginx rsync-3.0.]# cd /usr/local/rsync/
[root@nginx rsync]# echo "rsyncpwd" >/usr/local/rsync/rsync1.passwd
当然你也可以手动 通过 vim 编辑该文件,指定密码为rsyncpwd
给与权限600,不然会报错
[root@nginx rsync]# chmod rsync1.passwd
3、安装inotify
先查看服务器是否支持inotify
ll /proc/sys/fs/inotify
如果有以下3个文件,那么即支持安装inotify

#安装inotify
cd /usr/src/
wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/inotify ##该安装位置非常重要,因为安装完inotify文件后需要调用路径下的inotifywait文件
make make make install
4、创建监控与同步脚本
其功能就是:从源服务器(192.168.43.159)的/root/test目录下所有的文件无论是添加、修改、删除文件,能够通过inotify监控到,并通过rsync实时同步到目标服务器(192.168.43.231)的/root/www_bak/目录下。
该脚本要放置在被监控的路径下,如本次被同步路径为/root/test/
vim /root/test/rsync1.sh
#!/bin/bash
host=192.168.43.231
src=/root/test/
des=web
user=webuser
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' -e modify,delete,create,attrib $src | while read files
do
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync1.passwd $src $user@$host::$des
echo "${files} was rsynced" >>/tmp/rsync.log >&
done
host:目标服务器IP; src:被同步的本地路径; des:同步模块名,目标服务器必须一致 ;user:认证用户名,目标服务器的密码文件必须是这个
注意点:其中的/usr/local/inotify/bin/inotifywait 路径在上述inotify安装路径下找到;/usr/local/rsync/rsync1.passwd路径在上述的密码文件路径下找到。
修改权限,给与764权限
[root@nginx tmp]# chmod rsync1.sh
二、目标服务器安装配置
1、目标服务器也需要安装rsync,和源服务器一样。
2、建立密码文件:
[root@nginx rsync-3.0.]# cd /usr/local/rsync/
[root@nginx rsync]# echo "webuser:rsyncpwd" >/usr/local/rsync/rsync2.passwd
同样要给此文件一个600的权限
chmod 600 /etc/rsync2.passwd
注:在源服务器建立的密码文件,只有密码,没有用户名;而在目标服务器里建立的密码文件,用户名与密码都有。
3、编辑rsync监控文件
本次监控文件放置在rsync的安装路径下/usr/local/rsync
vim /usr/local/rsync/rsync2.conf
uid = root
gid = root
use chroot = no
max connections =
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[web]
path = /root/www_bak/
comment = web file
ignore errors
read only = no
write only = no
hosts allow = 192.168.43.159
hosts deny = *
list = false
uid = root
gid = root
auth users = webuser
secrets file = /usr/local/rsync/rsync2.passwd
三、启动服务
a、源服务器启动监控与同步:
sh /root/test/rsync1.sh &
b、目标服务器启动 rsync监控
/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsync2.conf
四、测试同步
Centos7 rsync+inotify两台服务器同步文件(单向)的更多相关文章
- Centos 6.5 rsync+inotify 两台服务器文件实时同步
rsync和inotify是什么我这里就不在介绍了,有专门的文章介绍这两个工具. 1.两台服务器IP地址分别为: 源服务器:192.168.1.2 目标服务器:192.168.1.3 @todo:从源 ...
- rsync配置两台服务器之间的文件备份(同步)
rsync配置两台服务器之间的文件备份(同步) 前情提要 环境: 192.168.1.2 主服务器 centos 7.7 192.168.1.3 备份服务器 centos 7.7 rsync 安装(两 ...
- CentOS7之Rsync+Inotify架构实现实时同步文件和文件夹
简介:rsync是用来同步文件和文件夹的,inotify是用来实现监听变动而自动同步的 OS:Centos7.3 服务器端:172.16.13.157 客 户 端 :172.16.13.156 目 ...
- linux下实现多台服务器同步文件(inotify-tools+rsync实时同步文件安装和配置)
inotify-tools+rsync实时同步文件安装和配置 注:转载https://www.linuxidc.com/Linux/2012-06/63624.htm
- centos7安装rsync及两台机器进行文件同步
安装及配置 yum -y install rsync #启动rsync服务 systemctl start rsyncd.service systemctl enable rsyncd.service ...
- rsync+inotify安装配置 实时同步文件
安装 #安装inotify 工具 [root@localhost ~]# yum install inotify-tools -y 常用命令 [root@localhost ~]# inotifywa ...
- linux两台服务器之间文件/文件夹拷贝
跨服务器拷贝需要用到的命令是scp. ----------------------拷贝文件夹---------------------------------------------- 把当前文件夹t ...
- ftp 两台服务器传输文件 apache
import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputS ...
- linux下两台服务器文件实时同步方案设计和实现
inux下两台服务器文件实时同步方案设计和实现 假设有如下需求: 假设两个服务器: 192.168.0.1 源服务器 有目录 /opt/test/ 192.168.0.2 目标服务器 有目录 /o ...
随机推荐
- ES 创建mapping
mapping的写入与查看首先创建一个索引: curl -XPUT "http://erp2.es.kd1.pagoda.com.cn:80/erp_stock_index"{&q ...
- 陶陶摘苹果(0)<P2005_1>
陶陶摘苹果 (apple.pas/c/cpp) [问题描述] 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用 ...
- Eclipse创建一个普通的java web项目
1.右键new ,选web project ,下一步 2.为项目命名,然后finish 3.然后将jar包复制到lib目录下, 4.就会自动将jar包编译到web app Libraries,项目创建 ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:将所有列表项放置同一行
<!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...
- 发送邮件#Python
import yagmailusername='11@qq.com' #发件人邮箱qq='zhezlqiggd' #授权码,QQ邮箱可在设置账户获得mail_server='smtp.qq.com' ...
- Python学习笔记002
字符编码:把二进制字符翻译成字符 ASCII码表 256 一个字节,8个比特 支持中文: GB2312 GBK1.0 GB18030 BIG5(台湾) unicode UTF-8 开头定义 ...
- Android Dialog弹框提示
public void showUpdateDialog(String content) { //普通的AlertDialog对话框 AlertDialog.Builder builder = new ...
- 5.Nginx
1.Nginx 安装 (1) 安装gcc (yum install gcc) 备注:可以输入gcc -v 查询版本信息,看系统是否自带安装 (2) 安装pcre (yum install pcre-d ...
- synchronized和volatile关键字
synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够用 synch ...
- 吴裕雄--天生自然python机器学习实战:K-NN算法约会网站好友喜好预测以及手写数字预测分类实验
实验设备与软件环境 硬件环境:内存ddr3 4G及以上的x86架构主机一部 系统环境:windows 软件环境:Anaconda2(64位),python3.5,jupyter 内核版本:window ...