将 rsync 与排除/包含一起使用

use*_*215 6 server rsync

我正在运行 2 个 ubuntu 9.10 服务器。我必须同步这两台机器之间的更改。以下是我要同步的目录:

/usr、/etc、/var、/bin、/sbin、/lib

我正在使用如下所示的 rsync 进行复制:

rsync -avP 192.168.2.100:/usr/ /usr

rsync -avP 192.168.2.100:/etc/ /etc ------这里我必须排除许多文件,如 /etc/udev/*、/etc/hosts、/etc/hostname、...

我尝试使用rsync -avP --exclude '/etc/fstab' 192.168.2.100:/etc/ /etc但它覆盖了整个 /etc 目录

任何人都可以编辑并给我 rsync 到同步指定目录而不是排除的一行命令吗?。需要帮忙!

Ada*_*tan 5

排除模式相对于文件,而不是目标文件。您实际上是在排除192.168.2.100:/etc/etc/fstab,它不存在。

你应该使用:

rsync -avP --exclude '/fstab' 192.168.2.100:/etc/ /etc
Run Code Online (Sandbox Code Playgroud)


use*_*215 0

以下是用于在一行中同步多个目录的 rsync 命令,对我有用。请告诉我这是否是正确的使用方法。

这应该在 SOURCE 系统上运行:

rsync -avP --exclude 'udev' --exclude 'hosts' --exclude 'hostname' --exclude 'any-account-under-home' /etc /home /usr /var /lib /bin /sbin 192.168.2.100:/
Run Code Online (Sandbox Code Playgroud)

我们可以从指定目录中排除许多文件/目录。

如果我们有一个同名的文件,假设 /etc/ 和 /home 下有“test”,并且您只想从 /etc 中排除该文件,然后放置一个排除条目,从所有 .txt 文件中排除“test”。