使用 rsync 备份并排除

使用 rsync 备份并排除

我想从具有以下服务器进行部分备份同步

我的排除文件看起来像这样

bin/
boot/
dev/
initrd.img
initrd.img.old
lib/

我现在的问题是,每个文件夹中的每个 lib、bin 等文件夹都会被跳过,但我只想跳过根文件系统上的 /lib、/boot ... 文件夹

如何处理?

答案1

全局排除路径锚定在传输的根目录,因此对特定的 rsync 调用很敏感,例如,如果指定了尾部斜杠。如果传输的根目录是文件系统根目录,那么要排除,/lib/我们需要使用此排除模式,而不是lib/man rsync有关详细信息,请参阅。考虑这个例子:

$ find .
.
./root1
./root1/lib
./root1/lib/file
./root1/home
./root1/home/lib
./root1/home/lib/file
./root2
./exclude

$ cat exclude
/lib/

$ rsync -aPn root1/ root2/
sending incremental file list
./
home/
home/lib/
home/lib/file
lib/
lib/file

$ rsync -aPn --exclude-from=exclude root1/ root2/
sending incremental file list
./
home/
home/lib/
home/lib/file

相关内容