用rsync备份并排除

我想用rsync从服务器进行部分备份。

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

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

我的问题是,每个lib,bin等文件夹将跳过每个文件夹,但我只是想跳过根文件系统上的/ lib,/ boot …文件夹

如何处理这个?

全局排除path被锚定在传输的根目录,因此对特定的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