在两个不同的地方验证文件大小

Verifying file size in two different places

哦 我有一台服务器备份数据到NAS,然后我从源NAS复制到目标NAS。

我正在寻找一种方法来验证已发送到目标 NAS 的大小数量是否与源 NAS 上的大小相匹配。

由于移动数据量很大,无法一一查看

有没有人对我的问题有任何建议和解决方案?

谢谢

如果您需要验证在 2 个目录之间复制的数据,我认为您最好的选择是比较文件哈希值而不是文件大小。

您可以使用以下脚本来识别不一致的文件

$Dir1 = "D:\SRC"
$Dir2 = "D:\DST"
$Dir1Hash = Get-ChildItem $Dir1 -recurse -file | Get-FileHash | select hash,Path,@{n='RemotePath';e={$_.path.replace($Dir1,$Dir2)}}
$Dir2Hash = Get-ChildItem $Dir2 -recurse -File | Get-FileHash | select hash,Path,@{n='RemotePath';e={$_.path.replace($Dir2,$Dir1)}}
foreach ($item in $Dir1Hash){
$ReplicaFile = $Dir2Hash | where {$_.RemotePath -eq $item.path}
if ($ReplicaFile) {
    if ($item.Hash -ne $ReplicaFile.Hash){
        Write-host "Incorrect hash of file: $($item.Path) on Replica folder" -ForegroundColor Cyan
    }
}
else {
    Write-Output "File: $($item.Path) doesn't exist on Replica Folder"
}
}