[Guía] backups periodicos en xp/2k3
-
publicado originalmente en el foro de mistermod, a ver si entrais de ven cuando que nos teneis abandonaos
–---------------------
Hace unos días alguien preguntó por un programa para hacer copias de seguridad periódicas automáticamente, pues yo sus voy a explicar mi método. Consiste en la creación de un .bat con una serie de comandos que dupliquen unas determinadas carpetas en otro disco duro.
Bueno, pues os enseño el ejemplo que tengo en la oficina:
@echo off
cls
type pato.txt
pause
md d:\Martamd "d:\Marta\Documents and Settings\Marta\Mis documentos"
md "d:\Marta\Documents and Settings\Marta\Datos de programa\Microsoft\Outlook"
md "d:\Marta\Documents and Settings\Marta\Datos de programa\Microsoft\Signatures"
md "d:\Marta\Documents and Settings\Marta\Configuraci¢n local\Datos de programa\Microsoft\Outlook"
md "d:\Marta\Documents and Settings\Marta\Favoritos"
md "d:\Marta\lotus\trabajo"
xcopy "C:\Documents and Settings\Marta\Mis documentos" "d:\Marta\Documents and Settings\Marta\Mis documentos" /E /Q /R /H
xcopy "C:\Documents and Settings\Marta\Datos de programa\Microsoft\Outlook" "d:\Marta\Documents and Settings\Marta\Datos de programa\Microsoft\Outlook" /E /Q /R /H
xcopy "C:\Documents and Settings\Marta\Datos de programa\Microsoft\Signatures" "d:\Marta\Documents and Settings\Marta\Datos de programa\Microsoft\Signatures" /E /Q /R /H
xcopy "C:\Documents and Settings\Marta\Configuraci¢n local\Datos de programa\Microsoft\Outlook" "d:\Marta\Documents and Settings\Marta\Configuraci¢n local\Datos de programa\Microsoft\Outlook" /E /Q /R /H
xcopy "C:\Documents and Settings\Marta\Favoritos" "d:\Marta\Documents and Settings\Marta\Favoritos" /E /Q /R /H
xcopy "C:\lotus\trabajo" "d:\Marta\lotus\trabajo" /E /Q /R /H
pause
exitÉsto se copia con el block de notas y se renombra a .bat
Explicación:
@echo off
Os paso la explicación de ender78, del foro de mrmod, que es mu listo y lo sabe todo xDDD
"El comando "echo" indica si está activa o inactiva la característica de "eco" de los comandos, es decir, si los resultados de la ejecución de un comando aparecen por pantalla o no. @echo off le indica al interprete de comandos que a partir de ese momento no debe seguir mostrando por pantalla nada, @echo on volvería a activar el "eco". La arroba hace que la ejecución del propio comando echo, o cualquier otro, no saque nada por pantalla, o sea que la @ es un "mini-echo" de una sóla línea.
Echo también presenta u oculta texto en los programas de procesamiento por lotes, es decir, si justo antes de la última pausa incluyeses la línea
| echo Copia de seguridad completada con éxito. Pulse una tecla para finalizar |
el interprete de comandos mostraría ese texto y luego pasaría a la siguiente linea del script (pause, en este caso).
cls
"clear screen", "limpia" la pantalla de msdos borrando todo el texto escrito hasta ahora
type pato.txt
bueno, pues éste comando "pega" en pantalla el contenido de un documento de texto, en éste caso "pato.txt", hecho con el bloc de notas. En éste texto he puesto el logo de la compañía en cutre-ascii (se nota que me aburro)
pause
el comando pause hace una pausa en el avance del bat, y te pide que pulses una tecla para continuar (ésto es para que la peña se entere de lo que va haciendo por saber cuándo falla algo QUÉ es lo que falla)
md d:\Marta
md "d:\Marta\Documents and Settings\Marta\Mis documentos"
md "d:\Marta\Documents and Settings\Marta\Datos de programa\Microsoft\Outlook"
md "d:\Marta\Documents and Settings\Marta\Datos de programa\Microsoft\Signatures"
md "d:\Marta\Documents and Settings\Marta\Configuraci¢n local\Datos de programa\Microsoft\Outlook"
md "d:\Marta\Documents and Settings\Marta\Favoritos"
md "d:\Marta\lotus\trabajo"
bueno, pues el comando md crea carpetas. La unidad D, en mi caso, es una unidad compartida alojada en otro ordenador y destinada únicamente a las copias de seguridad. La ruta de las carpetas se escribe entre comillas para que al llegar a un "espacio" no se quede ahí. Ojo a los acentos, el acento de la "o" es ese símbolo raro que hay ahí, si quereis saber cómo se ponen los acentos os lo explico más tarde.
xcopy "C:\Documents and Settings\Marta\Mis documentos" "d:\Marta\Documents and Settings\Marta\Mis documentos" /E /Q /R /H
xcopy "C:\Documents and Settings\Marta\Datos de programa\Microsoft\Outlook" "d:\Marta\Documents and Settings\Marta\Datos de programa\Microsoft\Outlook" /E /Q /R /H
xcopy "C:\Documents and Settings\Marta\Datos de programa\Microsoft\Signatures" "d:\Marta\Documents and Settings\Marta\Datos de programa\Microsoft\Signatures" /E /Q /R /H
xcopy "C:\Documents and Settings\Marta\Configuraci¢n local\Datos de programa\Microsoft\Outlook" "d:\Marta\Documents and Settings\Marta\Configuraci¢n local\Datos de programa\Microsoft\Outlook" /E /Q /R /H
xcopy "C:\Documents and Settings\Marta\Favoritos" "d:\Marta\Documents and Settings\Marta\Favoritos" /E /Q /R /H
xcopy "C:\lotus\trabajo" "d:\Marta\lotus\trabajo" /E /Q /R /H
bueno pues el xcopy éste es el típico "copiar". luego lo de "/E /Q /R /H" son comandos pues para que reemplace los archivos existentes en el direcotrio de destino y algunas cosas más, pero SON NECESARIOS así que eso no lo toqueis (si quereis saber lo que son, xcopy /? en msdos.
pause
otra pausa antes de salir, para ver si da algún error.
exit
cierra la ventanita
Consideraciones:
Bueno, yo tengo 20 gb para copias de seguridad así que lo que yo hago es que cuando hago la copia, me voy a D:\Marta y renombro "Marta" por "Marta FECHA DE HOY" para que a la próxima vez que haga la copia no me diga todo el rato "sobreescribir, cancelar…"Ya la ostia sería que el directorio principal lo crease con la fecha de hoy pero creo que eso ya se sale de mis conocimientos BASICOS.
EDITADO: kelven nos enseña su método para que salga la fecha automáticamente, es perfecto ;). Pego el mensaje original, que está más abajo.
@echo off set ndia= set dia= set mes= set año= set desal= set hora= set minuto= set meridiano= set separa=-hora- set directorio= for /f "tokens=1-3 delims=/ " %%a in ('date /t') do ( set dia=%%a& set mes=%%b& set año=%%c) set directorio=CopiaRMA-%dia%_%mes%_%año% for /f "tokens=1-3 delims=: " %%x in ('time /t') do (set hora=%%x& set minuto=%%y& set meridiano=%%z) set directorio=%directorio%%separa%%hora%_%minuto%%mer idiano% mkdir UnidadDeRedParaBackup:\backup\%directorio% xcopy LoqueKieroKeCopie:\. UnidadDeRedParaBackup:\backup\%directorio% /E /R /H /y
Esto me copia lo que hay en LoKeKieroKeCopie en UnidadDeRedParaBackup (que las tengo mapeadas dentro del PC donde ejecuto las copias, y a las que tengo permisos de acceso, y de escritura en la que voy a hacer la copia ), dentro de la carpeta backup en una carpeta con el nombre de la fecha y la hora del backup …
enga, dew.
-
Creo que si en los comandos XCOPY les añades el modificador /Y, nunca te pregunta confirmación, con lo cual podrías escribir siempre sobre el mismo directorio sin que te preguntara ¿Sobreescribir, cancelar…?
-
Lo he probado y funciona pero no bien, me explico copia todas las carpetas del bakcup pero solo "mis documentos" esta casi cn 2gigas y no la quiero copiar
Entonces me hace todas las carpetas pero no hay nada dentro de ellashe puesto esto en el bat
@echo off
cls
pause
md d:\HaRmFuLmd "d:\HaRmFuL\Documents and Settings\HaRmFuL\Mis documentos"
md "d:\HaRmFuL\Documents and Settings\HaRmFuL\Datos de programa\Microsoft\Outlook"
md "d:\HaRmFuL\Documents and Settings\HaRmFuL\Datos de programa\Microsoft\Signatures"
md "d:\HaRmFuL\Documents and Settings\HaRmFuL\Configuracion local\Datos de programa\Microsoft\Outlook"
md "d:\HaRmFuL\Documents and Settings\HaRmFuL\Favoritos"
xcopy "C:\Documents and Settings\HaRmFuL\Mis documentos" "d:\HaRmFuL\Documents and Settings\HaRmFuL\Mis documentos" /E /Q /R /H
xcopy "C:\Documents and Settings\HaRmFuL\Datos de programa\Microsoft\Outlook" "d:\HaRmFuL\Documents and Settings\HaRmFuL\Datos de programa\Microsoft\Outlook" /E /Q /R /H
xcopy "C:\Documents and Settings\HaRmFuL\Datos de programa\Microsoft\Signatures" "d:\HaRmFuL\Documents and Settings\HaRmFuL\Datos de programa\Microsoft\Signatures" /E /Q /R /H
xcopy "C:\Documents and Settings\HaRmFuL\Configuracion local\Datos de programa\Microsoft\Outlook" "d:\HaRmFuL\Documents and Settings\HaRmFuL\Configuraci¢n local\Datos de programa\Microsoft\Outlook" /E /Q /R /H
xcopy "C:\Documents and Settings\HaRmFuL\Favoritos" "d:\HaRmFuL\Documents and Settings\HaRmFuL\Favoritos" /E /Q /R /H
pause
exit -
si os esperais a que llegue a la euskal me curro un script que haga eso que quereis creando una carpeta con la fecha y alguna cosilla más
Salu2
PackoP.D.: robocopy POWAHHHH
-
a la espera packo
-
jodo, ya ni me acordaba que estaba esto pendiente. Esta tarde os lo pongo, que ahora tengo que cortar la luz para poner una lampara :rolleyes:
Salu2
Packo -
una pregunta … ¿Cual es el comando para que te lo copie a una carpeta poniendo el dia que lo copias??
-
pueden buscar el programita robocopy, que entre otras cosas te permite realizar copias incrementales y diferenciales
-
ahhh, tambien me acorde de otra … al final de la copia agregaria alguna linea del del arj, para que quede todo comprimido
-
Como opción más cómoda tb recomiendo, y es mas fácil, coger y Mis Documentos moverla a otro disco duro o partición y un acc.directo en el escritorio….... Ahorra problemas, y así después de hojear cosas en el escritorio meterlo en su sitio.
-
Por si a alguien le sirve … a mi me viene de lujo ...
@echo off
set ndia=
set dia=
set mes=
set año=
set desal=
set hora=
set minuto=
set meridiano=
set separa=-hora-
set directorio=for /f "tokens=1-3 delims=/ " %%a in ('date /t') do ( set dia=%%a& set mes=%%b& set año=%%c)
set directorio=CopiaRMA-%dia%%mes%%año%for /f "tokens=1-3 delims=: " %%x in ('time /t') do (set hora=%%x& set minuto=%%y& set meridiano=%%z)
set directorio=%directorio%%separa%%hora%_%minuto%%meridiano%
mkdir UnidadDeRedParaBackup:\backup%directorio%
xcopy LoqueKieroKeCopie:. UnidadDeRedParaBackup:\backup%directorio% /E /R /H /y
–------------------------------
Esto me copia lo que hay en LoKeKieroKeCopie en UnidadDeRedParaBackup (que las tengo mapeadas dentro del PC donde ejecuto las copias, y a las que tengo permisos de acceso, y de escritura en la que voy a hacer la copia ), dentro de la carpeta backup en una carpeta con el nombre de la fecha y la hora del backup …
-
ahora sí
-
pregunta … para que sirve la opcion /Z del xcopy ??
... en ayuda te dice .. copia archivo de red en modo reiniciable ... estooo ¿ mandeee?