Ubuntu 20.04下rsync备份根目录时/home目录为空,是哪里配置出错?
问题核心原因
你出现这个问题是因为命令里加了--one-file-system参数,同时你的系统中/home是独立挂载的单独分区。--one-file-system的作用是限制rsync仅备份源路径所属的单个文件系统,跳过所有其他挂载点的文件系统。你备份根目录/时,rsync识别到/home是其他分区的挂载点,就直接跳过了该目录下的所有内容,仅保留了空的/home目录结构。
而你单独备份/home时,源路径改成了/home本身,--one-file-system就会仅限制在/home所属的文件系统内备份,所以能正常拿到所有内容,正好符合你测试的结果。
验证方法
执行以下命令即可确认/home是否为独立分区:
lsblk | grep /home
如果输出有内容,就说明/home确实是单独挂载的分区。
解决方法
有两种常用方案可选:
- 保留
--one-file-system参数,把需要备份的独立分区都加到源路径中,修改后的命令如下:
rsync -aAXHv --one-file-system --exclude-from=/home/bill/rsync-excludes / /home $target
- 如果你不需要限制跨文件系统备份,直接删除
--one-file-system参数即可,你现有的排除规则已经覆盖了不需要备份的临时挂载目录,不会出现误备份的问题。
内容的提问来源于stack exchange,提问作者Bill Craig
相关产品推荐
相关产品推荐

