Rsync多模块复制、排除指定文件及目录以及数据无差异复制的应用实例
在我的博客《Rsync 数据复制软件应用》中,拉取数据访问的都是服务器端的/backup 目录,当然我们在其他目录下拉取数据。而实现这种操作就是指多模块复制。
要实现多模块复制首先需要修改rsync的配置文件rsyncd.conf(要记得此处的配置文件在服务器端哦!)
[root@localhost ~]# vim /etc/rsyncd.conf
[root@localhost ~]# cat /etc/rsyncd.conf
#rsync_config____________________start
#created by wj root
uid=rsync
gid=rsync
fake super = yes
use chroot = no
max connections = 200
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/run/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 192.168.146.0/24
hosts deny =0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = welcome to backup!
path = /backup/
[data] #加入的内容
path = /data/
建立并授权目录
[root@localhost ~]# mkdir -p /data
[root@localhost ~]# chown -R rsync.rsync /data
[root@localhost ~]# ls -ld /data
drwxr-xr-x. 2 rsync rsync 6 5月 5 15:47 /data
重启Rsync服务(只要修改过配置文件,就要重启服务)
[root@localhost ~]# systemctl restart rsyncd
现在就可以从客户端访问测试了
[root@web1 ~]# rsync -avz /wjtest rsync_backup@192.168.146.100::data
Password:
@ERROR: auth failed on module data
rsync error: error starting client-server protocol (code 5) at main.c(1649) [sender=3.1.2] #出现这种情况是由于服务端的验证账户密码输入错误导致的,一定要输入正确的密码
[root@web1 ~]# rsync -avz /wjtest rsync_backup@192.168.146.100::data
Password:
sending incremental file list
wjtest/
wjtest/wj.txt
sent 123 bytes received 47 bytes 37.78 bytes/sec
total size is 0 speedup is 0.00
[root@web1 ~]#
登录服务端验证
[root@localhost ~]# ls /data
wjtest
排除指定目录和文件的数据复制
注意首先我们需要在服务器端创建测试文件与目录
[root@localhost backup]#mkdir {a..d}
[root@localhost backup]#touch a/1 b/2 c/3 d/4
[root@localhost backup]# tree /backup/
/backup/
├── a
│ └── 1
├── b
│ └── 2
├── c
│ └── 3
└── d
└── 4
4 directories, 4 files
我创建人四个目录a、b、c、d,目录下分别存放1、2、3、4,其中/backup目录为Rsync服务器端指定的备份同步目录
以在Rsync客户端(192.168.146.110)上执行拉取文件操作,及从服务器端同步文件到客户端
在同步数据过程中,假设要排除a、c目录(包括下面的文件)及b目录下的2文件
[root@web1 ~]# ls -l /mnt
总用量 0
[root@web1 ~]# rsync --exclude=a --exclude=b/2 --exclude=c -avzrtopgP \ rsync_backup@192.168.146.100::backup/ /mnt --password-file=/etc/rsync.password #注意这里不需要空格,有空格会出错的
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1649) [Receiver=3.1.2]
[root@web1 ~]# rsync --exclude=a --exclude=b/2 --exclude=c -avzrtopgP \rsync_backup@192.168.146.100::backup/ /mnt --password-file=/etc/rsync.password
receiving incremental file list
./
b/
d/
d/4
0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/4)
sent 81 bytes received 175 bytes 512.00 bytes/sec
total size is 0 speedup is 0.00
[root@web1 ~]#
在客户端查看
[root@web1 ~]# tree /mnt
/mnt
├── b
└── d
└── 4
2 directories, 1 file
主机之间数据无差异复制
要实现这种同步方式就要使用Rsync的参数--delete,所谓无差异复制,就是不管是拉取还是推送,都要保持两边的数据完全一致。
本地推送式删除如下
[root@web1 ~]# mkdir null
[root@web1 ~]# rsync -avzP --delete null/ /mnt/
sending incremental file list
deleting d/4
deleting d/
deleting b/
./
sent 43 bytes received 38 bytes 162.00 bytes/sec
total size is 0 speedup is 0.00
检查/mnt中文件是否被删除
[root@web1 ~]# tree /mnt
/mnt
0 directories, 0 files
拉取式数据无差异同步方式
[root@web1 ~]# rsync -avz --delete rsync_backup@192.168.146.100::backup /wjtest/ --password-file=/etc/rsync.password
receiving incremental file list
deleting wj.txt
./
a/
a/1
b/
b/2
c/
c/3
d/
d/4
sent 123 bytes received 363 bytes 972.00 bytes/sec
total size is 0 speedup is 0.00
查看/wjtest
[root@web1 ~]# ls /wjtest
a b c d
登录到服务端服务器查看/kackup
[root@localhost mnt]# ls /backup
a b c d
发现此刻,在服务端服务器/kackup与客户端服务器 /wjtest目录下的文件一致
Rsync多模块复制、排除指定文件及目录以及数据无差异复制的应用实例的更多相关文章
- find tar排除指定文件或目录操作及查找文件内容关键字
1.find查找排除单个目录 查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk find . -path "./sk" -prune -o -name "*. ...
- Linux tar命令exclude选项排除指定文件或目录
在linux中可以用tar打包目录以方便传输or备份,我们先来看一个例子 test 文件夹有如下文件 [root@lee ~]# ll test 总用量 -rw-r--r--. root root 4 ...
- web站点和windows服务项目发布时如何排除指定文件
在发布asp.net站点和windows服务项目时,有的时候这样的需求:msbuild编译之后发布到服务器指定目录时要排除指定文件,比如通过jenkins构建时,不希望覆盖原来的Web.config和 ...
- 【测试技术】ant在测试中的使用@文件以及目录的读写删和复制
ant其实就是一个java的打包工具,存在的时间已经很久了,很多同行在使用中可能就是用,对为什么要用它,能够怎么用没有更多的了解: ---------------------------------- ...
- [转]C# FileSystemWatcher监控指定文件或目录的文件的创建、删除、改动、重命名等活动
觉得这个很常用..比如一些软件. http://www.rabbit8.cn/DoNet/407.html FileSystemWatcher控件主要功能: 监控指定文件或目录的文件的创建.删 ...
- java实现指定文件扫描目录
package com.miss.time1230.io; import java.io.File; import java.util.Scanner; /** * @author MISS * 描述 ...
- rm排除指定文件或指定文件夹下文件
3.方法3,当前文件夹中结合使用grep和xargs来处理文件名: ls | grep -v keep | xargs rm #删除keep文件之外的所有文件 说明: ls先得到当前的所有文件和文件夹 ...
- 使用VS的生成事件命令行指令将生成的exe,dll文件复制到指定文件夹中
VS预生成事件命令行 和 生成后事件命令行 宏说明 $(ConfigurationName) 当前项目配置的名称(例如,“Debug|Any CPU”). $(OutDir) ...
- 第十九章 Python os模块,pathlib 判断文件是目录还是文件
OS模块 os.path.abspath() :返回path规范化的绝对路径 import sys import os BASE_DIR = os.path.dirname(os.path.dirna ...
随机推荐
- 使用lua-nginx模块实现请求解析与调度
系统版本及需求: OS:CentOS 7.7.1908 OpenResty:1.15.8.2 目录 描述 安装配置 安装openresty 使用示例 HTTP请求复制 HTTP报文解析 总结 描述 l ...
- C语言中指针和多维数组
指针和多维数组 数组名是特殊的指针 数组是一个特殊的指针,多维数组也是更为复杂的数组,它们的关系是什么样的呢? 我们通过一个简单的例子来比较形象的了解指针和多维数组: int a[2][3]; 这是一 ...
- Java 虚拟机详解
深入理解JVM 1 Java技术与Java虚拟机 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成: Java编程语言.Java类文件格式.Java虚 ...
- CVE-2018-2628-WLS Core Components 反序列化
漏洞参考 https://blog.csdn.net/csacs/article/details/87122472 漏洞概述:在 WebLogic 里,攻击者利用其他rmi绕过weblogic黑名单限 ...
- Java线程安全问题
线程安全问题是一个老生常谈的问题,那么多线程环境下究竟有那些问题呢?这么说吧,问题的形式多种多样的,归根结底的说是共享资源问题,无非可见性与有序性问题. 1. 可见性 可见性是对于内存中的共享资源来说 ...
- Web全段重点整理
1. HTML+CSS 1.1. HTML+CssDay01 1.1.1. 常用普通标签 常用标签如下 div span a p ul+li h1-h6 img 代码示例: <img src= ...
- 擅用ABAP错误捕捉,避免系统Dump
有时候我们在写程序时,会因为计算公式不符合算术表达式,计算公式的字段值不是纯数值等等问题造成程序dump,这个时候我们在无法避免字段赋值错误的情况下,又不想程序dump可以采取catch异常的方法进行 ...
- Spring Boot 自动配置 源码分析
Spring Boot 最大的特点(亮点)就是自动配置 AutoConfiguration 下面,先说一下 @EnableAutoConfiguration ,然后再看源代码,到底自动配置是怎么配置的 ...
- 2019HDU多校第七场 HDU6646 A + B = C 【模拟】
一.题目 A + B = C 二.分析 比较考验码力的题. 对于$c$,因为首位肯定不为0,那么$a$或者$b$至少有一个最高位是和$c$平齐的,或者少一位(相当于$a$+$b$进位得到). 那么这里 ...
- MySQL深入研究--学习总结(5)
前言 接上文,继续学习后续章节.细心的同学已经发现,我整理的并不一定是作者讲的内容,更多是结合自己的理解,加以阐述,所以建议结合原文一起理解. 第20章<幻读是什么,幻读有什么问题?> 先 ...