我的问题是,如果第一个硬盘空间已满,如何让 rsync 自动切换到另一个硬盘?有没有简单的方法?或者甚至不使用 rsync 的方法?
答案1
我认为您提出的建议无法实现(仅使用 rsync)和/或不合理。Rsync 同步两个位置的对象。您可能应该考虑在较低级别上解决这个问题。
首先,如果您以这种方式备份数据,即将其随机拆分到两个磁盘上,那么当其中一个设备出现故障时,备份不完整的可能性就会增加一倍。
如果你真的不在乎这个(取决于数据的重要性,这可能是一个非常糟糕的主意),你可以:
- 从两个磁盘中删除分区(我假设它们是 /dev/sdb 和 /dev/sdc)
- 使用逻辑卷管理器 (LVM) 创建一个使用这些磁盘作为物理设备的卷组。它的大小大致等于两个磁盘大小的总和
- 在此卷组中添加一个(或更多)逻辑卷
- 在其上创建文件系统
- 挂载它并用作 rsync 副本的目标。
简而言之(我将卷组命名为“vg10”,并将其中的逻辑卷命名为“backup”):
dd if=/dev/zero of=/dev/sdb bs=512k count=1
dd if=/dev/zero of=/dev/sdc bs=512k count=1
vgcreate vg10 /dev/sdb /dev/sdc
vgdisplay vg10 # look for number of free physical extents
lvcreate vg10 -n backup -l<number_of_free_physical_extents>
mkfs.xfs -L backup /dev/vg10/backup
mkdir /mnt/backup
echo "/dev/vg10/backup /mnt/backup xfs defaults 0 0" >> /etc/fstab
mount -a
请记住,您需要连接两个磁盘才能挂载 /mnt/backup,而且这不会给您带来任何冗余。
我不知道您的情况,但我会至少使用 RAID1 设置进行备份。