Mik*_*e B 8 linux files rsync centos
CentOS 5.x
Mq 问题似乎与此类似,但我不确定...
我有两台服务器(彼此完全隔离),每台服务器都有一个目录和子目录,这些目录和子目录应该具有完全相同的内容。
例如目录布局可能是这样的:
服务器 A -
/opt/foo/foob/1092380298309128301283/123.txt
/opt/foo/foob/5094380298309128301283/456.txt
/opt/foo/foob/5092380298309128301283/789.txt
/opt/foo/foob/1592380298309128301283/abc.txt
Run Code Online (Sandbox Code Playgroud)
服务器 B -
/opt/foo/foob/1092380298309128301283/123.txt
/opt/foo/foob/5094380298309128301283/456.txt
/opt/foo/foob/5092380298309128301283/789.txt
/opt/foo/foob/1592380298309128301283/abc.txt
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想要一种进行递归检查并确认一切匹配的方法。
我也想避免使用任何第三方工具。
有任何想法吗?
一种好方法是在树中的每个文件上使用 md5sums:
在 server1 上运行:
find /opt/foo/foob/ -type f -print0 | xargs -0 md5sum > report_from_server1.tx
Run Code Online (Sandbox Code Playgroud)
在 server2 上运行这个
find /opt/foo/foob/ -type f -print0 | xargs -0 md5sum > report_from_server2.tx
Run Code Online (Sandbox Code Playgroud)
然后只需比较两个文件(使用差异)或任何你喜欢的。
这与您要查找的内容相符吗?
当然,如果需要,您可以使用 SSH 远程执行命令。
如果您不一定关心发生了什么变化,只关心某些事情发生了变化,那么 rsync 仍然非常有用。尝试运行此命令并观察输出,假设这是从“servera”运行的。
rsync -avcn /opt/foo/ serverb:/opt/foo
Run Code Online (Sandbox Code Playgroud)
结果列表将是那些在您实际运行同步过程时会被修改的文件。请记住,即使仅更改时间戳,文件也会显示在列表中,但内容保持不变。既然我们添加了-n标志,那么实际上不会执行任何操作,只会报告。
虽然您可以编写一个快速脚本来计算目录中单个文件的单个 MD5 哈希值,但更好的方法是使用一个名为的工具md5deep,该工具将递归计算目录中所有文件的哈希值,然后输出他们到一个文件。然后可以在另一个目录上使用它,将第一个哈希文件作为输入,并为您提供两个目录之间不同的文件列表。
因此,以您为例,您将遵循以下流程:
计算服务器 A 上所需目录的哈希值:
md5deep -r /opt/foo/ > file_hashes.txt
将文件file_hashes.txt文件复制到服务器 B 上进行比较。
计算服务器 B 上所需目录的哈希值,但将来自服务器 A 的文件哈希值作为输入文件,使用该-x标志仅显示不同的文件:
md5deep -x file_hashes.txt -r /opt/foo/
md5deep 工具集构成了大多数发行版的包管理系统的一部分,最棒的是它支持许多不同的散列算法,而不仅仅是 MD5。因此,如果您对碰撞感到偏执,那么您有多种选择。以下工具构成了 md5deep 的一部分,每个工具都提供了一种替代散列算法:
md5deep - Compute and compare MD5 message digests
sha1deep - Compute and compare SHA-1 message digests
sha256deep - Compute and compare SHA-256 message digests
tigerdeep - Compute and compare Tiger message digests
whirlpooldeep - Compute and compare Whirlpool message digests
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3997 次 |
| 最近记录: |