是否可以将我的 3TB 大硬盘 rsync 到两个外部 2TB 硬盘?
如果可以,命令是什么样的?
如果没有,您能想到其他解决方案来将 3TB 的数据同步到 2 个 2TB 驱动器吗?我能想到的唯一方法是手动复制文件……但这样会失去 rsync 的所有功能 :(
答案1
选项包括将目标驱动器设置为单个卷(RAID、LVM、btrfs……),或在 3TB 驱动器上的数据子集上运行两个 rsync 命令。前一个选项使工作变得简单(只有一个目标),但缺点是必须连接两个驱动器才能访问数据。后者需要多花一点功夫,因为需要识别一组小于或等于 2TB 的文件夹,但允许独立访问每个目标驱动器上的数据。如果文件夹集比 3TB 驱动器根目录上的几个文件夹更复杂,那么构建 rsync 命令的最佳方法可能是利用 rsync 的--exclude-from
选项。
答案2
1)最简单的方法:
如果 3TB 的数据位于小于 2TB 的目录中,只需使用两个 rsync 命令。
例如
3TB --- 文件夹 1,包含 1½TB --> rsync ---> 2TB 驱动器 文件夹 1 有 1½TB --> rsync ---> 2TB 驱动器
2) 替代方案:
或者将两个 2TB 驱动器安装为单个卷。例如,使用线性模式或条带或存储空间。(线性模式将以 RAID0 的形式连接两个驱动器。条带将交替写入它们。)
3) 替代方案:
或者将第二个 2TB 驱动器安装在第一个驱动器上的卷中的文件夹中。
答案3
前面的答案都很好,但这里更详细一点。1)分别使用 2 个驱动器(烦人但有时需要)
- 安装 2 个新驱动器
- 首先需要确定空间限制。使用
df -h
查看新驱动器上的可用空间 - 在包含要传输的数据的文件夹中,使用命令
du
来确定将传输哪些数据到哪个驱动器。最简单和最有可能的是按字母顺序 du -ch -d0
这将显示每个顶层文件夹的空间。这-d0
是显示的深度。因此更改为-d1
查看顶层文件夹,然后查看子层文件夹的空间。du -ch -d0 [0-9a-tA-T]*/
这将显示顶级文件夹中的空间,仅匹配第一个字符与 0-9 或 at 或 AT 匹配的顶级文件夹。找到最适合您的空间要求的字母。- 在 rsync 命令中使用相反的字符
--exclude
。因此,在这种情况下,我会使用rsync --dry-run -av --exclude '/[u-zU-Z]*/' source destination
。--dry-run
如果看起来不错,请删除。前导字符/
仅表示顶级文件夹。请注意,0-9 已消失,因为我们想匹配所有这些字符。我们现在还匹配我们搜索的相反字母du
。
2) 像raid0
一样对驱动器进行 RAID mdadm
。然后运行正常的 rsync 命令。只需知道这些驱动器需要保持在一起,如果分开,数据就会丢失。