![Rsync'ing 系统,排除似乎不起作用](https://linux22.com/image/56401/Rsync'ing%20%E7%B3%BB%E7%BB%9F%EF%BC%8C%E6%8E%92%E9%99%A4%E4%BC%BC%E4%B9%8E%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
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 。