rsync filter
时间: 2023-10-21 11:29:27 浏览: 39
引用中提到,rsync的过滤规则分为两部分:daemon上的过滤规则和client中的过滤规则。daemon拥有自己的过滤链,决定哪些文件允许被client访问。这个过滤链不会被发送到client,并且独立于client中已经指定的过滤规则。当client拉文件时,那些被daemon过滤链排除的文件会被视为不存在;当client往server推送文件时,会跳过被daemon过滤链排除的文件,并且server会返回client一个错误消息。被daemon过滤链排除的文件不会从模块中删除。
引用中提到,client中的过滤规则包括了多个条目,如INCLUDE/EXCLUDE PATTERN RULES、MERGE-FILE FILTER RULES、ANCHORING INCLUDE/EXCLUDE PATTERNS等。这些规则可以用于控制哪些文件被同步或排除。
引用中提到,在使用sersync时,可以通过xml配置文件来实现过滤功能。在这个文件中,可以设置exclude标签来指定需要排除的文件或目录。
综上所述,rsync的过滤功能允许用户通过配置规则来控制哪些文件被同步或排除。在daemon和client两个层面都可以设置过滤规则,以满足用户的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
相关问题
rsync xinetd
rsync是一种常用的文件同步工具,而xinetd是一种Linux下的超级服务器,可以管理多个网络服务。通过xinetd服务管理rsync可以实现开机自启动,具体步骤如下:
1. 安装rsync和xinetd服务:
```
sudo apt-get install rsync xinetd
```
2. 创建rsync服务配置文件/etc/xinetd.d/rsync:
```
sudo nano /etc/xinetd.d/rsync
```
3. 将以下内容复制到文件中:
```
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
```
4. 保存并退出文件,重启xinetd服务:
```
sudo service xinetd restart
```
5. 确认rsync服务已经启动:
```
sudo netstat -antp | grep rsync
```
6. 如果输出结果中包含“rsync”,则表示rsync服务已经启动成功。
docker rsync
Docker是一种开源的容器化平台,可以帮助开发人员和系统管理员更轻松地构建、部署和运行应用程序。而rsync是一个用于文件同步和备份的工具,它可以在本地或远程系统之间同步文件和目录。
要在Docker中使用rsync,你可以使用两种不同的镜像:eeacms/rsync和apnar/rsync-server。这两个镜像都可以通过Docker Hub获取。
1. 使用eeacms/rsync镜像:
- 首先,你需要准备好rsync的密码文件。可以使用以下命令创建密码文件并设置权限:
```shell
echo "pass" >/etc/rsync.password
chmod 600 /etc/rsync.password
```
- 然后,你可以使用以下命令从Docker Hub上拉取eeacms/rsync镜像:
```shell
docker pull eeacms/rsync
```
- 最后,你可以使用以下命令来构建容器并运行rsync:
```shell
docker run -d --name rsync-server -p 873:873 -v /path/to/source:/data -v /etc/rsync.password:/etc/rsync.password eeacms/rsync
```
其中,`/path/to/source`是你要同步的源文件或目录的路径。
2. 使用apnar/rsync-server镜像:
- 首先,你需要准备好rsync的配置文件。可以使用以下命令创建一个简单的配置文件:
```shell
echo "uid = root" >/path/to/rsyncd.conf
echo "gid = root" >>/path/to/rsyncd.conf
echo "[data]" >>/path/to/rsyncd.conf
echo "path = /data" >>/path/to/rsyncd.conf
echo "read only = false" >>/path/to/rsyncd.conf
```
- 然后,你可以使用以下命令从Docker Hub上拉取apnar/rsync-server镜像:
```shell
docker pull apnar/rsync-server
```
- 最后,你可以使用以下命令来构建容器并运行rsync-server:
```shell
docker run -d --name rsync-server -p 873:873 -v /path/to/rsyncd.conf:/etc/rsyncd.conf -v /path/to/source:/data apnar/rsync-server
```
其中,`/path/to/rsyncd.conf`是你准备好的rsync配置文件的路径,`/path/to/source`是你要同步的源文件或目录的路径。
请注意,上述命令中的`-p`参数用于将容器的873端口映射到主机的873端口,以便可以通过rsync客户端访问。`-v`参数用于将主机上的文件或目录挂载到容器中,以便进行同步操作。