这是我的 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,我立即想到了几件事:
- 您很可能希望避免将原始文件系统上的硬链接拆分为副本上的单独(重复)文件。添加
-H
到您的rsync
选项中以避免这种情况。 - 您的命令分别寻址 / 的每个子目录,并将其同步到目标目录,从而有效地将可能位于不同分区上的系统合并到一个大分区中。(如果您的 /home 在设计上位于单独的分区上,则在您的备份中它将被塞进与其他所有内容相同的分区中。无论如何,如果您需要从该备份启动,您将需要调整副本上的 fstab。
- 可能的递归:如果您的排除模式失败,您将同步 /media/mirror 到其自身,创建 /media/mirror/media/mirror/..
- 您可能希望在副本中 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/*
最后,在实际备份之前,我从目标中删除了所有目录,例如/进程它们是在我正确设置排除规则之前创建的。
还有官方指导非常有帮助。