Rsync'ing 系统,排除似乎不起作用

Rsync'ing 系统,排除似乎不起作用

rsync我正在尝试通过以下方式对服务器进行完整的文件系统备份本指南。我正在使用以下命令:

rsync -aAXH --progress --delete --stats --exclude={\
    "/dev/*",\
    "/proc/*",\
    "/sys/*",\
    "/tmp/*",\
    "/run/*",\
    "/mnt/*",\
    "/media/*",\
    "/lost+found"}\
    /* \
    newserver:/mnt/oldserver-backup

但是,它仍然备份文件夹/media/x,导致目标中没有足够的空间。如何纠正这个问题?

答案1

--exclude={x,y,z}构造仅在 bash 中有效,并且需要在一行上且没有空格,只有这样 bash 才能正确扩展它。

我建议将列表放在一个单独的文件中并使用--exclude-from=file,或者按照 megahallon 建议的操作并自己重复 --exclude= 选项部分。

另请注意,您通常不希望/*作为您的来源;让 rsync 负责递归,所以只需指定/.这样 / 中的点文件也会被复制。我还总是在目标目录中添加尾部斜杠以防止出现意外;一个值得养成的好习惯。

答案2

rsync手册页

   Note also that the --filter, --include, and --exclude options take one
   rule/pattern each. To add multiple ones, you can repeat the options on     
   the command-line, use the merge-file syntax of the --filter option, or  
   the --include-from/--exclude-from options.

因此,在您的情况下,您可能只想对每个目录重复 --exclude 。

相关内容