![是否可以实时同步两个 Linux 目录?](https://linux22.com/image/515424/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%AE%9E%E6%97%B6%E5%90%8C%E6%AD%A5%E4%B8%A4%E4%B8%AA%20Linux%20%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我想将内部硬盘的目录同步到外部硬盘。
当我在内置硬盘上写入或修改文件时,相同的文件会自动复制到外部硬盘上...再见备份;)
这有点像带有外部硬盘的 RAID。
这可能吗?
答案1
据我所知,实时的只有DRBD。但我不认为这适用于您的情况,因为当您删除文件时,您也会在外部磁盘上删除它。更简单的是,您可以使用 rsync 和每隔几分钟运行一次的 cron 脚本。
答案2
同步似乎是完美的解决方案。它结合了通知(内核内置函数,监视目录树中的文件变化)和同步(跨平台文件同步工具)。
lsyncd -rsyncssh /home remotehost.org backup-home/
引用自 github:
Lsyncd 监视本地目录树事件监视器接口(inotify 或 fsevents)。它会在几秒钟内聚合并组合事件,然后生成一个(或多个)进程来同步更改。默认情况下,这是 rsync。因此,Lsyncd 是一种轻量级实时镜像解决方案,安装起来相对容易,不需要新的文件系统或块设备,也不会影响本地文件系统的性能。
答案3
您只需在内部和外部硬盘上创建软件 RAID1 即可。对于系统而言,无论是内置硬盘还是外部连接的大容量存储都没有区别。
但 RAID 不是备份!如果您不小心删除了硬盘上的文件,会发生什么?它也会在外部“备份”驱动器上被删除。
备份通常包含多代文件,因此您可以从中检索意外删除的文件。
答案4
git 附件也可以用来实现这一点。
git-annex 允许使用 git 管理文件,而无需将文件内容签入 git。虽然这看起来有些矛盾,但在处理大于 git 目前可以轻松处理的文件时(无论是由于内存、时间还是磁盘空间的限制),它都很有用
有一个快速帮助用户熟悉 git-annex 的指南