我想知道是否有一种方法可以同时将文件从一个硬盘驱动器备份到两个或三个其他硬盘驱动器(连接将通过 FireWire 并通过笔记本电脑完成),以便只有一次读取和两次写入?
我正在考虑一个自定义的 bash 脚本
cat /location/to/file/a.ext | tee /backupharddrive/location/to/file/a.ext > /backupharddriveb/location/to/file/a.ext
但效果似乎和我单独复制时一样
答案1
为什么不使用RSync?
伪代码(不保证完全准确!)
foreach hard_drive_device
rsync source_dir $hard_drive_device/dest_dir
fi
当然这不是异步的,但可以完成你的任务。如果你想将进程分叉到后台,你可以在末尾放一个&
或者使用旧的黑客哲学:解决自己的问题!
你可以用你喜欢的语言创建一个名为 multicopy 的程序,它接受一个读取源,然后写入多个目的地
伪代码(不保证完全准确!)
if(src is directory)
for each file in directory
CopyFile(file, destList)
fi
else
CopyFile(src, destList)
fi
CopyFile(src, destList) {
foreach block in src
foreach dest in destList
open(dest/src)
seek(end)
write(block)
fi
fi
}
答案2
该设置需要单独的硬盘...而不是 raid 配置...