我希望使用duplicity
(我经常使用它,通常没有问题)/etc
和/root
.我希望.cache
从/root
目录中排除。我尝试:
duplicity incremental --full-if-older-than 30W --include /etc \
--include /root --exclude '/root/.cache' --exclude / \
--verbosity info / scp://TARGET
这通常有效,但/root/.cache
包含在备份中。我没有'/root/.cache'
尝试不同的表达模式:/root/.cache
、"/root/.cache"
、"**.cache"
、'**.cache'
和''**.cache''
其他几种,但结果相同。
根据口是心非手册(我在 openSUSE 上有 0.7.12),表达式"**.cache"
应该可以正常工作。是我看错了说明书还是我做错了什么?
答案1
蒂利亚,
排除口是心非时,顺序很重要。参数按给定的顺序使用。在您的示例中,“/root/.cache”与
--include /etc
--include /root <-- and matches here
--exclude '/root/.cache'
--exclude /
尝试将特定的排除项移到更一般的包含项之前,例如。
--include /etc
--exclude /root/.cache
--include /root
--exclude /**
那应该有效。当然,将缓存移出根目录的主文件夹也可以。
顺便提一句。文件选择在口是心非的手册页中有自己的部分 http://duplicity.nongnu.org/duplicity.1.html#sect9
字。到**.cache
,是的。它会起作用,但最终会排除任何名为“.cache”的路径。如果您想要确切的名称,您应该使用**/.cache
.
最后,还有一个--exclude-if-present
参数,如果只需要排除一些文件夹,该参数会非常方便。
--exclude-if-present filename
如果文件名存在,则排除目录。允许用户通过添加指定文件(例如“.nobackup”)来指定他们不希望备份的文件夹,而不是维护全面的排除/包含列表。此选项需要出现在任何其他包含或排除选项之前。
..ede/duply.net