rsync skipping directory
时间: 2023-11-15 08:25:31 浏览: 59
如果 `rsync` 跳过了一个目录,可能有以下几个原因:
1. 目录为空。`rsync` 默认情况下不会复制空目录,因此它将跳过此类目录。可以使用 `--prune-empty-dirs` 选项来强制 `rsync` 复制空目录。
2. 没有足够的权限。如果您没有足够的权限来访问该目录,`rsync` 将无法读取或复制该目录。请确保您具有足够的权限来访问该目录。
3. 目录被排除。如果您在 `rsync` 命令中使用了 `--exclude` 或 `--exclude-from` 选项来排除某些目录,则 `rsync` 将跳过这些目录。
4. 目录被包含在排除规则中。如果您在 `rsync` 命令中使用了 `--exclude-from` 选项,并且该文件中包含了排除某些目录的规则,则 `rsync` 将跳过这些目录。
请检查以上原因,并根据需要调整您的 `rsync` 命令或文件系统权限以解决问题。
相关问题
rsync exclude
您可以使用rsync命令的`--exclude`选项来排除特定的文件或目录进行同步。
下面是使用rsync的`--exclude`选项的示例:
```
rsync -av --exclude 'path/to/exclude' source_directory/ destination_directory/
```
在上面的命令中,`--exclude`选项后面跟着要排除的文件或目录的路径。您可以使用相对或绝对路径来指定要排除的内容。如果要排除多个文件或目录,您可以多次使用`--exclude`选项。
以下是一些`--exclude`选项的示例:
- 排除单个文件:
```
rsync -av --exclude 'file.txt' source_directory/ destination_directory/
```
- 排除整个目录:
```
rsync -av --exclude 'directory/' source_directory/ destination_directory/
```
- 排除特定类型的文件:
```
rsync -av --exclude '*.txt' source_directory/ destination_directory/
```
请注意,`--exclude`选项中的路径可以是相对于源目录的相对路径,也可以是绝对路径。
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`参数用于将主机上的文件或目录挂载到容器中,以便进行同步操作。