0、rsync+inotify是实现文件实时同步的,加什么参数才能实现实时同步,--delete参数又是什么意思?

1.运行模式(服务器)

rsync有两种常用的认证方式,一种是rsync-daemon方式,我们使用最多的是rsync-daemon方式。

这种模式是基于C/S模式的,rsync在后台启用了一个守护进程,这个守护进程在rsync服务器永久运行,用于接收请求传输文件,因此,客户端既可以把文件推送(push)给守护进程,也可以向守护进程拉取(pull)文件。rsync的服务器模式非常适合为异地的中心备份服务器或数据异地存储库来使用。

我的实验架构:

10.1.1.36    ---------------push---------------------10.1.185

(client)                                                          (server)

2.安装配置

a.在客户端10.1.1.36(这是一台邮件服务器)vim /etc/rsyncd.pass  (写入123456)

chmod 600 /etc/rsyncd.pass
yum install rsync -y

b.在服务端10.1.1.85(专门用来备份的机器)

yum install rsync -y

创建 mkdir /data/test,首先进行配置文件的设定,我们设置的如下:

# cat /etc/rsyncd.conf

uid = root
gid = root
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
log file = /var/log/rsync.log
transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 [nextcloud]
path = /data/nextcloud
comment = pan.comratings.com
read only = no
write only = no
hosts allow = 10.0.2.30
list = no
ignore errors
auth users = backup
secrets file = /etc/rsyncd.pass

增加密码认证文件:(在服务端)

# vim /etc/rsyncd.pass
backup:123456  
chmod 600 /etc/rsyncd.pass

 

启动服务器:

systemctl start rsyncd.service

在10.1.1.36(client)rsync -vzrtopg  --progress ./ --password-file=/etc/rsyncd.pass backup@10.1.1.85::test   ------push   增量推送  把  ./下的文件增量得同步到10.1.1.85:/data/test/下

在10.1.1.36 (client) rsync -vzrtopg  --progress  --password-file=/etc/rsyncd.pass backup@10.1.1.85::test   ./  -------pull   增量拉下   把10.1.1.85:/data/test/下文件增量拉到36的./

v是“--verbose”显示详细输出模式
z是“--compress”压缩模式
r是“--recursive”以子目录递归模式
t是“--times“用来保持文件信息时间
o是”--owner“用来保持文件的属主信息
p是”--perms“用来保持文件权限
g是”--group“用来保持文件的属组
--progress:用来显示数据镜像同步的过程
--delete:指定以rsync服务器为基准进行数据镜像同步,也就是要保持rsync服务器端目录与客户端目录的完全一致
rsync中的-delete参数是指“ 删除那些DST中SRC没有的文件”。
--exclude:用于排除不需要文件传输的类型 下面是我在客户端的小脚本,把客户端本地的文件同步到rsync服务器
通过inotifywait 中的-m参数可以实现“始终保持事件监听状态”

#!/bin/bash
#author:xiaoweige
host_slave=10.1.1.85
master_src=/data/test/
inotify_home=/usr/local/inotify

${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,modify,delete,create,attrib $master_src \
| while read file

do
echo $file
rsync -vzrtopg --progress /data/test/ --password-file=/etc/rsyncd.pass backup@10.1.1.85::test

done

rsync+inotifywait的更多相关文章

  1. linux服务器之间的文件同步;rsync+inotifywait;同步多个目录

    1.双向同步:unison+inotify 2.单向同步:rsync+inotify python版的pyinotify 本文介绍第二种方法: 1.Inotify 是一个 Linux特性,它监控文件系 ...

  2. linux:rsync + inotifywait 实现【准实时】同步

    直接上脚本 #!/bin/bash export PATH=./sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:$PATH src=/tmp1 #dest=ro ...

  3. 文件同步 单向rsync 双向unison 监控inotifywait 免密登录

    1.负载均衡中文件同步必不可少,我这边选择rsync来实现文件同步 rsync同步文件机制更适用于单向文件同步,可配合unison实现双向同步功能. 实现同步的两种方法 一:ssh方法 rsync - ...

  4. rsync单项同步

    配置rsync+inotify实时单向同步 定期同步的缺点: 执行备份的时间固定,延期明显,实时性差 当同步源长期不变化时,密集的定期任务是不必要的(浪费资源) 实时同步的优点: 一旦同步源出现变化, ...

  5. 使用rsync+inotify实现/www目录实时同步

    一.实现bak-server 1.1安装rsync # yum -y install rsync 1.2修改配置文件 # vi /etc/rsyncd.conf #添加下面内容 uid=test gi ...

  6. centos7下rsync+inotify脚本实现文件同步,.NET CORE客户端文件更新后自动重启服务

    源服务器IP:192.168.8.51 目标服务器IP:192.168.8.79 安装前源服务器及目标服务器均需关闭FIREWALLD\SELINUX防火墙 sestatus | grep statu ...

  7. [记录]inotifywait+rsync脚本和sersync2服务检测的脚本

    1)inotifywait+rsync脚本: #!/bin/bash src=/data/ # 需要同步的源路径 des=data # 目标服务器上 rsync --daemon 发布的名称,rsyn ...

  8. Service系统服务(六):rsync基本用法、rsync+SSH同步、配置rsync服务端、访问rsync共享资源、使用inotifywait工具、配置Web镜像同步、配置并验证Split分离解析

    一.rsync基本用法 目标: 本例要求掌握远程同步的基本操作,使用rsync命令完成下列任务: 1> 将目录 /boot 同步到目录 /todir 下   2> 将目录 /boot 下的 ...

  9. inotify+rsync文件实时同步报错:usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0:

    解决办法: ln -sv /usr/local/lib/libinotify* /usr/lib/ /usr/lib64/libinotifytools.so.

随机推荐

  1. Codeforces550C(SummerTrainingDay01-H)

    C. Divisibility by Eight time limit per test : 2 seconds memory limit per test : 256 megabytes input ...

  2. 【代码笔记】iOS-performSelector

    代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. se ...

  3. Java内部类的介绍

    在Java的面向对象编程中,由于Java并没有类似C++的多重继承,所以采用了内部类这样的方式,现在介绍几种内部类的常见情况. 公开内部类 即由public关键词修饰的内部类,内部类作为外部类的一个成 ...

  4. flutter 监控返回键

    return new WillPopScope( child: Scaffold( body: new Center( child: new Column( children: <Widget& ...

  5. UWP开发细节记录:加载图像文件到D2D位图和D3D纹理

    在UWP中加载文件一般先创建 StorageFile 对象,然后调用StorageFile.OpenReadAsync 方法得到一个IRandomAccessStream 接口用来读取数据: Stor ...

  6. Python 面向对象补充

    什么是面向对象编程 类 + 对象 class 类: def 函数1(): pass def 函数2(): pass obj是对象, 实例化的过程 obj = 类() obj.函数1() 例1 , 某些 ...

  7. FTP 服务搭建后不能访问问题解决

    主要是需要启动身份验证功能

  8. CSS| 解决子级用css float浮动 而父级div没高度不能自适应高度

    解决子级用css float浮动 而父级div没高度不能自适应高度 解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 最外层 ...

  9. python set集合一些基本方法

    set集合是一个无序且不重复的元素集合 这个数据类型没有重复的,而且也没有顺序 一些基本的方法: 添加元素 s1 = {11, 22, 33} s1.add(123)#添加一个新的元素 print(s ...

  10. [Spark Streaming_1] Spark Streaming 概述

    0. 说明 Spark Streaming 介绍 && 在 IDEA 中编写 Spark Streaming 程序 1. Spark Streaming 介绍 Spark Stream ...