[TIP - MODIFICADO] Copiar ficheros en Uso: SHADOW Copy en Windows XP

04/02/2005 - 17:11 por JM Tella Llop [MVP Windows] | Informe spam
SHADOW COPY en Windows XP
-

Utilidad: por ejemplo, copiar ficheros que están en uso por otra
aplicacion. COn este ejemplo, podemos copiarnos la carpeta de correo:
outlook.pst por ejemplo, aunque esté abierto el correo. Su uso no se
limita unicamente al correo: es posible copiar cualquier archivo o
carpeta completa aunque esté en uso.

Shadow Copy es un servicio nativo de W2003 cuya utilidad está dirigida a
proteger carpetas compartidas que estan en uso por usuarios, y ante
posibles errores de usuarios realiza copias periodicas al objeto de no
perder datos por manipulaciones incorrectas como por ejemplo borrados
accidentales. XP tambien es capaz de usarlo indirectamente con NTBackup,
pero en principio está restringido solo a un servicio y por desgracia,
solo para lo use NTBackup.


¿COMO IMPLEMENTARLO EN XP DE UNA MANERA GENERICA?
-

Es necesario tener en el Path el programa vshadow.exe (290 KB's) y
posteriormente usar un script que describiré a continuacion. Por
desgracia, la unica manera de obtener ese fichero es bajarse el SDK del
Volume Shadow Copy Service:
http://www.microsoft.com/downloads/...x?FamilyID 4F56E4-0CCC-4626-826A-ED2C4C95C871&displaylang=en
que por desgracia ocupa 23 megas. Una vez instalado, debemos localizar
el programa vshadow.exe del cual nos dejará dos versiones: una para XP y
otra para W2003. Debemos copiar la de XP, a la misma carpeta en donde
nos vamos a generar el script que se describe a continuacion.

Una vez copiado, el resto del SDK no nos hace falta ya que son
herramientas para desarrolladores.


CREACION DEL SCRIPT DE COPIA
-

Con notepad por ejemplo, o con cualquier editor, creamos un fichero
llamado copyshadow.cmd con el siguiente contenido (delimitado por las
lineas de guiones, sin copiar estas):


setlocal

if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK

set SOURCE_DRIVE_LETTER=%~d1
set SOURCE_RELATIVE_PATH=%~pnx1
set DESTINATION_PATH=%2

set CALLBACK_SCRIPT=%~s0
set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd

"%~dp0\vshadow.exe" -script=%TEMP_GENERATED_SCRIPT% -exec=%CALLBACK_SCRIPT%
%SOURCE_DRIVE_LETTER%

del /f %TEMP_GENERATED_SCRIPT%

@goto :EOF

:IS_CALLBACK
setlocal

call %TEMP_GENERATED_SCRIPT%

copy "%SHADOW_DEVICE_1%\%SOURCE_RELATIVE_PATH%" %DESTINATION_PATH%
-


Posteriormente la manera de ejecutarlo en una ventana de comandos
(cmd.exe) es:

copyshadow origen destino

siendo "origen" un archivo o carpeta y el mismo criterio para "destino"
Si el origen o destino tuviese caracteres especiales, como espacios en
blanco, deberan encerrarse entre comillas. Por ejemplo:

copyshadow "carpeta origen 1" "c:\pruebas de copia"

en este caso, copiará todo el contenido de "carpeta origen 1" que cuelga
de la carpeta en donde estemos situados en ese momento a la carpeta
"c:\pruebas de copia"


NOTAS:


El "origen" puede ser:

1) Un nombre de fichero. En este caso, el destino debe ser una carpeta
en donde vayamos a dejarlo,o bien una carpeta y el nombre del archivo.
El nombre "origen" debe estar totalmente cualificado, o supondrá que
está en la carpeta actual.

2) Una carpeta. En este caso el destino debe ser otra carpeta y debe
existir. Si no existiese, lo creará como un unico archivo y meterá
dentro de el, todos los archivos origen uno a continuacion del otro.


PROBLEMAS CONOCIDOS:
La letra de unidad Z: debe estar libre en nuestra maquina y no mapeada a
ningun recurso local o de red.


Links de referencia y creditos:

http://blogs.msdn.com/adioltean/arc...57836.aspx
http://www.microsoft.com/Resources/..._tools.asp
http://www.petri.co.il/what's_shadow_copy_on_windows_server_2003.htm

y fundamentalmente, a un usuario de los grupos de noticias de Microsoft:
"jaime" que la haver una pregunta sobre las copias de ficheros
ocultos me ha dado la idea de resumir los articulos anteriores, en
castellano, y de una manera simple.



Jose Manuel Tella Llop
MVP - Windows
jmtella@XXXcompuserve.com (quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.
 

Leer las respuestas

#1 JM Tella Llop [MVP Windows]
04/02/2005 - 17:15 | Informe spam
Debido a que al enviar se han cortado lineas del script, lo vuelvo a dejar aquí:

setlocal

if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK

set SOURCE_DRIVE_LETTER=%~d1
set SOURCE_RELATIVE_PATH=%~pnx1
set DESTINATION_PATH=%2

set CALLBACK_SCRIPT=%~s0
set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd

"%~dp0\vshadow.exe" -script=%TEMP_GENERATED_SCRIPT% -exec=%CALLBACK_SCRIPT% %SOURCE_DRIVE_LETTER%

del /f %TEMP_GENERATED_SCRIPT%

@goto :EOF

:IS_CALLBACK
setlocal

call %TEMP_GENERATED_SCRIPT%

copy "%SHADOW_DEVICE_1%\%SOURCE_RELATIVE_PATH%" %DESTINATION_PATH%




Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.



"JM Tella Llop [MVP Windows]" wrote in message news:%
SHADOW COPY en Windows XP
-

Utilidad: por ejemplo, copiar ficheros que están en uso por otra
aplicacion. COn este ejemplo, podemos copiarnos la carpeta de correo:
outlook.pst por ejemplo, aunque esté abierto el correo. Su uso no se
limita unicamente al correo: es posible copiar cualquier archivo o
carpeta completa aunque esté en uso.

Shadow Copy es un servicio nativo de W2003 cuya utilidad está dirigida a
proteger carpetas compartidas que estan en uso por usuarios, y ante
posibles errores de usuarios realiza copias periodicas al objeto de no
perder datos por manipulaciones incorrectas como por ejemplo borrados
accidentales. XP tambien es capaz de usarlo indirectamente con NTBackup,
pero en principio está restringido solo a un servicio y por desgracia,
solo para lo use NTBackup.


¿COMO IMPLEMENTARLO EN XP DE UNA MANERA GENERICA?
-

Es necesario tener en el Path el programa vshadow.exe (290 KB's) y
posteriormente usar un script que describiré a continuacion. Por
desgracia, la unica manera de obtener ese fichero es bajarse el SDK del
Volume Shadow Copy Service:
http://www.microsoft.com/downloads/...x?FamilyID 4F56E4-0CCC-4626-826A-ED2C4C95C871&displaylang=en
que por desgracia ocupa 23 megas. Una vez instalado, debemos localizar
el programa vshadow.exe del cual nos dejará dos versiones: una para XP y
otra para W2003. Debemos copiar la de XP, a la misma carpeta en donde
nos vamos a generar el script que se describe a continuacion.

Una vez copiado, el resto del SDK no nos hace falta ya que son
herramientas para desarrolladores.


CREACION DEL SCRIPT DE COPIA
-

Con notepad por ejemplo, o con cualquier editor, creamos un fichero
llamado copyshadow.cmd con el siguiente contenido (delimitado por las
lineas de guiones, sin copiar estas):


setlocal

if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK

set SOURCE_DRIVE_LETTER=%~d1
set SOURCE_RELATIVE_PATH=%~pnx1
set DESTINATION_PATH=%2

set CALLBACK_SCRIPT=%~s0
set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd

"%~dp0\vshadow.exe" -script=%TEMP_GENERATED_SCRIPT% -exec=%CALLBACK_SCRIPT%
%SOURCE_DRIVE_LETTER%

del /f %TEMP_GENERATED_SCRIPT%

@goto :EOF

:IS_CALLBACK
setlocal

call %TEMP_GENERATED_SCRIPT%

copy "%SHADOW_DEVICE_1%\%SOURCE_RELATIVE_PATH%" %DESTINATION_PATH%
-


Posteriormente la manera de ejecutarlo en una ventana de comandos
(cmd.exe) es:

copyshadow origen destino

siendo "origen" un archivo o carpeta y el mismo criterio para "destino"
Si el origen o destino tuviese caracteres especiales, como espacios en
blanco, deberan encerrarse entre comillas. Por ejemplo:

copyshadow "carpeta origen 1" "c:\pruebas de copia"

en este caso, copiará todo el contenido de "carpeta origen 1" que cuelga
de la carpeta en donde estemos situados en ese momento a la carpeta
"c:\pruebas de copia"


NOTAS:


El "origen" puede ser:

1) Un nombre de fichero. En este caso, el destino debe ser una carpeta
en donde vayamos a dejarlo,o bien una carpeta y el nombre del archivo.
El nombre "origen" debe estar totalmente cualificado, o supondrá que
está en la carpeta actual.

2) Una carpeta. En este caso el destino debe ser otra carpeta y debe
existir. Si no existiese, lo creará como un unico archivo y meterá
dentro de el, todos los archivos origen uno a continuacion del otro.


PROBLEMAS CONOCIDOS:
La letra de unidad Z: debe estar libre en nuestra maquina y no mapeada a
ningun recurso local o de red.


Links de referencia y creditos:

http://blogs.msdn.com/adioltean/arc...57836.aspx
http://www.microsoft.com/Resources/..._tools.asp
http://www.petri.co.il/what's_shadow_copy_on_windows_server_2003.htm

y fundamentalmente, a un usuario de los grupos de noticias de Microsoft:
"jaime" que la haver una pregunta sobre las copias de ficheros
ocultos me ha dado la idea de resumir los articulos anteriores, en
castellano, y de una manera simple.



Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



Preguntas similares