这是 fssync 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
fssync - 文件系统同步工具(单向,通过 SSH)
概要
文件同步 -d db -r 根 [选项...] 主持人
商品描述
fssync 是一种单向文件同步工具,用于跟踪 inode 并维护本地
远程端的文件数据库,使其能够:
· 有效地处理大量的目录/文件
·检测重命名/移动和硬链接
它旨在最小化网络流量并同步文件系统的每个细节:
· 所有类型的 inode:文件、目录、块/字符/fifo、套接字、符号链接
· 保留硬链接
· 修改时间、所有权/权限/ACL、扩展属性
· 稀疏文件
其他功能:
· 可以配置为从同步中排除文件
· fssync 可以随时中断和恢复,使其能够容忍随机故障
(例如网络错误)
· 同步文件内容的算法旨在处理像 VM 映像这样的大文件
有效地,通过就地更新固定大小的修改块
fssync 的主要用途是在硬件故障的情况下防止数据丢失,其中 RAID1 是
不可能(例如在笔记本电脑中)。
On BTRFS [1] 文件系统,fssync 是一个有用的替代方案 BTRFS 提交 (和 接收)
命令,感谢过滤功能。 这可以与 Btrfs 快照结合使用
在目标端获得完整的备份解决方案。
用法
使用 VHDL 语言编写 文件同步 - 帮帮我 以获取完整的选项列表。
要记住的最重要的事情是本地数据库必须完全匹配
在目标主机上:
· 在目标主机上复制的文件不得修改。 什么都不应该
在目标目录中手动创建。 如果您仍想访问数据
远程主机,您应该通过只读绑定安装(需要 Linux >=
2.6.26)。
· 每个目的地必须有 1 个数据库,如果您计划有多个相同的副本
源目录。
看着 -c 选项,如果您想知道您的数据库是否与目标目录匹配。
fssync 的第一次运行:
· 最简单的方法是让fssync 做所有事情。 指定一个不存在的文件路径 -d
选项和一个空的或不存在的目标目录(请参阅 -R 选项)。 fssync 将
自动创建数据库并将所有目录/文件复制到远程主机。
· 更快的方法可能是通过其他方式进行初始复制,例如原始副本
划分。 如果您绝对确定源和目标完全相同,
您可以通过指定来初始化数据库 - 作为主持人。 如果 inode 编号相同
在双方,如果数据是在块级别复制的,您可以修改
在目标分区上初始化数据库时的源分区,然后返回
本地数据库。
可以在以下位置找到带有过滤器的 fssync 包装器示例 示例/fssync_home
fssync 永远不会下降其他文件系统上的目录。 被挂载点屏蔽的 inode
也被跳过,所以如果你想让它们被暂时卸载
同步。 通过从绑定安装同步可以实现相同的结果。
另见 没有 暗号 交换 [2] 如果您不需要加密并且想要加密,请打补丁
加快您的 SSH 连接。
如何 IT 工作
fssync 维护远程端所有目录/文件的单个 SQLite 表。 每个
row 匹配一个路径,它的 inode(在本地端),其他元数据(在远程端)和一个
检查 旗。
运行时,fssync 递归遍历所有本地目录/文件和每个路径
不被忽略(见 -f 选项),它查询数据库来决定做什么。 如果已经
检查, 路径被立即跳过。 当一条路径被同步时,它被标记为
检查. 最后,所有不是的行 检查 对应于不存在的路径
了。 一旦它们在远程端被删除,所有 检查 标志被重置。
失败 公差
事实上,fssync 并不要求数据库与目标完全匹配。 它
容忍一些差异,以恢复由
网络故障、文件操作错误或操作系统崩溃以外的任何其他原因
本地主机(或类似电源故障的东西)。
在大多数情况下,这是由远程主机完成的,它会自动创建(或覆盖)
如有必要,一个预期类型的 inode。 唯一的例外是遥控器将
永远不要自行删除非空目录。 对于最复杂的情况,fssync 会记录日志
在数据库中的操作:如果失败,fssync 将能够在下一次恢复
同步。
种族 条件
竞争条件意味着本地主机上的其他进程正在修改
fssync 正在同步。 fssync 处理任何类型的竞争条件。 其实 fssync 有
大多数情况下无事可做。
当竞争条件发生时,fssync 不保证远程数据在一个
一致的状态。 每个同步总是修复现有的不一致,但可能会引入
其他的,所以 fssync 不适合数据库的热备份。
使用 Btrfs,您可以通过在源端进行快照来获得一致性。
相似的 案例
维护本地数据库的想法其实来自 同步2 [3]。 我正要
当我意识到我真的需要一个总是检测重命名/移动的工具时采用它
大文件。 这就是为什么我将 fssync 视为 csync2 的部分重写,具有 inode 跟踪和
没有双向同步。 本地数据库真的让fssync & csync2
比众所周知的更快 rsync的 [4]。
使用 onworks.net 服务在线使用 fssync