Quantcast
Channel: Blog Virtualizacion
Viewing all articles
Browse latest Browse all 679

Powershell: Comparar dos Shares, Ficheros o Carpetas

$
0
0

Powershell: Comparar dos Shares, Ficheros o Carpetas

Hoy os voy a explicar cómo comparar dos Shares, carpetas o ficheros.

La idea es que cuando tienes que hacer una réplica de una carpeta, si el tamaño es muy grande, necesitaréis comparar el origen y el destino, tanto al principio como una vez replicadas.

Os voy a enseñar como hacerlo con un script de Powershell, con robocopy o vía una herramienta gráfica y gratuita.

Comparar carpetas con script de Powershell

Os dejo un script de Powershell para comparar dos shares, carpetas o ficheros. Cambiar el origen y el destino por el vuestro. La idea es dejar log con todos los ficheros, el tamaño de las dos carpetas y la comparativa de lo que ha cambiado:

# RAUL UNZUE - EL BLOG DE NEGU
# Hay un límite a tamaño de rutas de 260 caracteres
# Se puede modificar en la siguiente clave de registro:
# `HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)`
# Hay que cambiar el valor de 1 a 0

# REVISAMOS EL ORIGEN
$fso = Get-ChildItem -Recurse -path "M:"
$fso > c:\Users\elblogdenegu\Desktop\datos-origen.txt
# EXTRAEMOS EL TAMAÑO DE LOS FICHEROS ENCONTRADOS
$totalSizeo = ($fso | Measure-Object -Sum Length).Sum / 1GB > c:\Users\elblogdenegu\Desktop\tamano-origen.txt

# REVISAMOS EL DESTINO
$fsd = Get-ChildItem -Recurse -path "N:"
$fsd > c:\Users\elblogdenegu\Desktop\datos-destino.txt
# EXTRAEMOS EL TAMAÑO DE LOS FICHEROS ENCONTRADOS
$totalSized = ($fsd | Measure-Object -Sum Length).Sum / 1GB > c:\Users\elblogdenegu\Desktop\tamano-destino.txt

# COMPARAMOS Y EXTRAEMOS EL RESULTADO
Compare-Object -ReferenceObject $fso -DifferenceObject $fsd -Property Length,Name -IncludeEqual > c:\Users\elblogdenegu\Desktop\comparativa.txt

Comparar carpetas con Robocopy

También se puede hacer vía Robocopy, para evitar la limitación de Powershell:

$origen="\\NAS\carpeta"
$destino="\\NAS02\carpeta"

ROBOCOPY $origen $destino /e /l /ns /njs /njh /ndl /fp /log:c:\Users\elblogdenegu\Desktop\modificaciones.txt

Comparar carpetas con WinMerge

Si la parte vía comando no os resulta cómoda, podéis usar WinMerge, que es una APP gratuita que os hace una comparación visual de ficheros y recursos:

URL: https://winmerge.org/

powershell-comparar-dos-shares-ficheros-o-carpetas-1

Copiar cambios incrementales de dos carpetas

Para terminar os dejo como comprobar los cambios entre dos carpetas:

Copiar: robocopy $origen $destino /E /Z /ZB /TBD /MT:20 /R:3 /W:3 /LOG:.\cambios.log /V /NP /PURGE 
Revisar: robocopy $origen $destino /E /Z /ZB /TBD /MT:20 /R:3 /W:3 /LOG:.\cambios.log /V /NP /PURGE  /L

¿Te ha gustado la entrada SÍGUENOS EN TWITTER?

La entrada Powershell: Comparar dos Shares, Ficheros o Carpetas se publicó primero en Blog Virtualizacion.


Viewing all articles
Browse latest Browse all 679