我正在尝试备份一个文件系统,排除/ mnt但在/ mnt中包含一个特定的路径,看起来好像使用–filter建议使用–include和–exclude,但我似乎无法获得它来做我的出价,例如:
rsync -aA -H --numeric-ids -v --progress --delete \
--filter="merge /tmp/mergefilter.txt" / /mnt/data/mybackup/
我的/tmp/mergefilter.txt说:
+ /mnt/data/i-want-to-rsyncthisdirectory/
- /dev
- /sys/
- /tmp/
- /run/
- /mnt/
- /proc/
- /media/
- /var/swap
- /lost+found/
所有以“ – ”开头的路径都会被忽略,但是我的/ mnt / data / i-want-to-rsyncthisdirectory /似乎永远不会得到rsync.顺序和/或包含/排除尾部斜杠似乎不会改变与我想要包含的路径相关的行为.
编辑:请注意,我确实要根据指定为/的源备份/ etc /usr/var等
感谢任何指导,因为手册页有点像雷区……
解决方法:
对我来说,这个命令正在完成这项工作:
rsync -aA -H --numeric-ids -v --progress --delete \
--filter="+ /mnt/data/i-want-to-rsyncthisdirectory/" \
--filter="- *" . /mnt/data/mybackup/
基本上,我使用了一个过滤器来查询所讨论的目录并驱逐所有其他目录(就像你在给定的例子中那样).
无需明确否定您不想同步的所有目录.相反,您可以忽略所有问题之外的所有问题.