rsync是解决我的问题的最好方法吗?

我有一台OEL / RHEL 5.3服务器,其中“源”装载到16TB 10Gbps NFS共享,“目标”装载到使用OCFS2格式化的16TB FC LUN。

我需要确保目的地匹配来源,我很高兴,他们是不同步,甚至长达一两个小时 – 使用rsync这一点很容易。

但是,如果有人删除源上的每个文件,并且在下一个预定时间段内没有被rsync删除,那么它将会很高兴 – 它检测到它将要从目标中删除大于20%的源,select停止。

这样的事情是可能的,或者是一个不同的工具更适合这个问题? 我对这台机器的操作系统和文件系统具有灵活性,但对两个存储箱都不是实际的连接types。

谢谢。

在任何NFS错误的情况下,理论上应该保护( man rsync ):

如果发送方检测到任何I / O错误,则删除目标上的任何文件将被自动禁用。 这是为了防止发送端的临时文件系统故障(例如NFS错误)导致目标文件的大量删除。

你也可以用--max-delete=NUM限制这个伤害,所以只有这么多才会被删除。 然后,您可以从磁带或任何您使用的东西中恢复该部分。

真的,实际上问题可能是有人可以删除源文件中的所有文件? 你不应该停止权限?

您可以使用rsync的--max-delete=NUM来告诉rsync不要删除指定数量的文件,其中NUM是less于约20%文件的数字, --backup/--suffix选项用于重命名文件在目标上而不是删除。

你可以一起攻击一些东西来计算文件。 其实,像这样的:

 (cd /source && ls -FalR . ) | sort > /root/sourcelist.$$ (cd /dest && ls -FalR . ) | sort > /root/destlist.$$ diff -u /root/sourcelist.$$ /root/destlist.$$ | egrep '^-' | wc -l 

将给你多less文件,你要删除。 重复一遍,知道有多less,并在同步之前运行。