linux - 如何比较 2 个文件系统块

linux - how to compare 2 filesystem blocks

有没有办法在 2 个不同的 linux 服务器之间比较(二进制或校验和等)文件块。两台服务器上的文件都驻留在 SAN 中。原因 - 复制是在 postgres 数据库上设置的,我想检查主数据库和镜像中 table 的块是否与 tables 完全相同或不同?

我会使用 dd 读取您关心的文件块,然后将其通过管道传输到 md5sum 以获得校验和,我可以将其与另一台机器进行比较,例如:

$ dd if=/path/to/postgresql/data bs=4096 skip=<block number minus one> count=1 | md5sum
5561f64d760047a7a56e99a71a66c890

(如果 4KB 不适合 PostgreSQL,您应该在 bs= 参数中替换您自己的块大小。)