rsync 占用的空间比源多

rsync 占用的空间比源多

这是我的 rsync 的 cron 任务

00 03 * * * /usr/bin/rsync --delete -aAXv /* /media/mirror --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs} && /bin/date | /bin/cat > /home/william/ubuntu-server-backup/last_rsync.txt

这是在 root 的 crontab 中。目标驱动器(镜像)具有与主磁盘相同的容量。

我已经验证过,符号链接仍然是链接,并没有被复制两次。

我究竟做错了什么?

编辑:我刚刚检查过,似乎没有排除“/media”。为什么?我从建筑维基

答案1

看着你的 rsync-call,我立即想到了几件事:

  1. 您很可能希望避免将原始文件系统上的硬链接拆分为副本上的单独(重复)文件。添加-H到您的rsync选项中以避免这种情况。
  2. 您的命令分别寻址 / 的每个子目录,并将其同步到目标目录,从而有效地将可能位于不同分区上的系统合并到一个大分区中。(如果您的 /home 在设计上位于单独的分区上,则在您的备份中它将被塞进与其他所有内容相同的分区中。无论如何,如果您需要从该备份启动,您将需要调整副本上的 fstab。
  3. 可能的递归:如果您的排除模式失败,您将同步 /media/mirror 到其自身,创建 /media/mirror/media/mirror/..
  4. 您可能希望在副本中 1:1 复制原始文件系统。由于根据您的调用,它也是当前活动的根文件系统,因此它将非常活跃并且正在被写入。最好从另一个文件系统启动(无论是从网络、备用根分区、实时 CD、USB 棒,还是任何适合您的方式),以便复制静止的文件系统。

答案2

答案3

我遇到了类似的问题:

为了解决这个问题,我添加到了 rsync

--exclude-from "/home/<username>/exclude.txt"

其中 exclude.txt 为:

 /dev/*
 /proc/*
 /sys/*
 /tmp/*
 /run/*
 /mnt/*
 /media/*
 /lost+found
 /home/*/.thumbnails/*
 /home/*/.cache/mozilla/*
 /home/*/.cache/chromium/*
 /home/*/.local/share/Trash/*

最后,在实际备份之前,我从目标中删除了所有目录,例如/进程它们是在我正确设置排除规则之前创建的。

还有官方指导非常有帮助。

相关内容