rsync 后文件有所不同

rsync 后文件有所不同

太长了;

运行后rsync -aPc --no-inc-recursive --stats <source> <destination>文件有所不同。

我正在修复我的家庭实验室 NAS,我想验证这些文件是否完全相同。

我的系统规格:

  • openmediavault 5.6.13-1 (Debian) 在 Proxmox VM 中运行
  • 源文件系统:EXT4
  • 目标文件系统:EXT4
  • 驱动器通过 SATA 电缆连接到主板

我创建了一个在后台运行的脚本。它首先同步文件,然后比较它们以验证备份:

echo "rsync /documents"
rsync -aPc --no-inc-recursive --stats /srv/dev-disk-by-uuid-ID1/documents /srv/dev-disk-by-uuid-ID2
echo "rsync /photos"
rsync -aPc --no-inc-recursive --stats /srv/dev-disk-by-uuid-ID1/photos /srv/dev-disk-by-uuid-ID2
echo "rsync /movies"
rsync -aPc --no-inc-recursive --stats /srv/dev-disk-by-uuid-ID1/movies /srv/dev-disk-by-uuid-ID2
echo "rsync /music"
rsync -aPc --no-inc-recursive --stats /srv/dev-disk-by-uuid-ID1/music /srv/dev-disk-by-uuid-ID2
echo "rsync /downloads"
rsync -aPc --no-inc-recursive --stats /srv/dev-disk-by-uuid-ID1/downloads /srv/dev-disk-by-uuid-ID2

echo "cmp all start"
find /srv/dev-disk-by-uuid-ID1 -type f -exec sh -c '
    for f; do
        cmp "$f" /srv/dev-disk-by-uuid-ID2"${f#/srv/dev-disk-by-uuid-ID1}"
    done
' sh {} +
echo "cmp all finish"

cmp 命令给了我一些“错误”,例如:/srv/dev-disk-by-uuid-ID1/photos/DSC01010.ARW /srv/dev-disk-by-uuid-ID2/photos/DSC01010.ARW differ: byte 70406147, line 285859

是什么原因导致这些问题?

如何确保文件复制正确?

答案1

rsync我见过的所有错误都是由 RAM 故障或文件系统损坏(有一次是松动的 SCSI 电缆)引起的。您可以使用 Memtest86+ 检查 RAM 并e2fsck在文件系统上运行以查找/修复问题。

确保所有硬件连接器均已就位并正常工作(SCSI/IDE/SATA/USB 电缆松动)

如果您过度使用 USB 记忆棒rsync,这些记忆棒会随着时间的推移而磨损,并且通常不会在系统启动时进行 fsck,因此不容易检测到错误。一个简单的方法e2fsck/fsck也会有所帮助。

相关内容