linux – 使用Rsync过滤器来包含/排除文件

我正在尝试备份一个文件系统,排除/ 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/

基本上,我使用了一个过滤器来查询所讨论的目录并驱逐所有其他目录(就像你在给定的例子中那样).

无需明确否定您不想同步的所有目录.相反,您可以忽略所有问题之外的所有问题.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...