Apagada docs

Aprendiendo a programar el pasado

Herramientas de usuario

Herramientas del sitio


es:bat:dar_backup

Mi script de backup para DAR

Dar es una utilidad de backup que, a diferencia del backup de microsoft o de los que incluyen algunos antivirus:

  • Se puede usar desde cualquier sistema operativo
  • No cambia completamente entre versiones, de forma que se pueden recuperar backups antiguos en un equipo nuevo (intente a recuperar un backup de Windows 95 en un Windows 2000, o uno de Windows 2000 en un Windows Vista!)
  • Admite scripting.

El problema de DAR es que es muy complicado de usar, así que pondré aquí el script que, personalmente empleo. Este script:

  • Hace una copia de seguridad de las carpetas del usuario.
  • Guarda cada backup en una carpeta con fecha.
  • Hace un registro de todas las acciones
  • Permite usar una contraseña.
  • Crea un primer backup total y todos los demás son incrementales.

IMPORTANTE: Este script requiere las extensiones de comando de CMD (Windows NT), específicamente:

  • SET X=%A:B=C% (Convierte cualquier aparición de B dentro de A en C)
  • FOR /F “delims=” (Lee las entradas de FOR desde un fichero, utilizando delimitadores personalizados).
path %PATH%;"C:\programs\dar\dar64-2.4.10-i386-windows"
 
rem SET PASSWORD FROM PRIVATE FILE
call %userprofile%\gpg\backuppassword.bat
 
if "%backuppassword%"=="" set /p backuppassword=Escribe la contraseña
 
set CYGWIN=mintty
rem Convertimos los separadores de fecha
rem y hora en caracteres admitidos en nombres
rem de archivo y PATH
set DATETIME=%DATE%-%TIME%
set DATETIME=%DATETIME:/=-%
set DATETIME=%DATETIME::=.%
set DATETIME=%DATETIME:,=.%
rem en %DATE%, los números son de 2 cifras,
rem pero en %TIME% se usa un espacio ante
rem la primera cifra entre las 0 y las 9 horas...
set DATETIME=%DATETIME:- =-0%
rem IMPORTANTE - USAR MINUSCULAS EN LA SIGUIENTE:
set BACKUPDIRMSDOS=d:\backup
set BACKUPDIR=%BACKUPDIRMSDOS::\=/%
set BACKUPDIR=%BACKUPDIR:\=/%
set BACKUPDIR=/cygdrive/%BACKUPDIR%
 
rem No puedo usar simplemente "temp*" porque excluiría, por ejemplo, "templates".
rem unos programas usan temp y otros Temp
set prunelist=-P */temp/*
set prunelist=%PRUNELIST% -P */Temp/*
rem Temporary internet files, etc.
set prunelist=%PRUNELIST% -P */Temporary*
rem unos usan Cache, AppCache y otros cache, nnnCache.
rem y lo que es peor, otros usan Cachennn...
set prunelist=%PRUNELIST% -P */*Cache/* 
set prunelist=%PRUNELIST% -P */*cache/*
set prunelist=%PRUNELIST% -P */*CACHE/*
set prunelist=%PRUNELIST% -P */*Cache[^A-z]*/*
set prunelist=%PRUNELIST% -P */*cache[^A-z]*/*
set prunelist=%PRUNELIST% -P */*CACHE[^A-z]*/*
rem Los siguientes archivos se excluyen por su extensión
rem Descargas parciales Chrome:
set prunelist=%PRUNELIST% -X *.crdownload
if not exist %BACKUPDIRMSDOS%\initialbackup*.* goto initialbackup
 
 
:incrementalbackup
rem INCREMENTAL BACKUP
for /F "delims==" %%i in (%BACKUPDIRMSDOS%\lastbackup.txt) do set lastbackup=%%i
 
set BACKUPFILE=%BACKUPDIR%/%DATETIME%/incremental%DATETIME%
rem Crea subdirectorio para cada backup, sliced.
mkdir %BACKUPDIRMSDOS%\%DATETIME%
 
echo Creating %BACKUPFILE%
echo ***** DIFFERENTIAL BACKUP START *****>>%BACKUPDIRMSDOS%\backup.log
echo Using dar -c %BACKUPFILE% -s 512M -A %lastbackup% -@ %BACKUPFILE%.catalog -v -R /cygdrive/c/users -z %PRUNELIST% -D -K bf:"password"  >>%BACKUPDIRMSDOS%\backup.log
dar -c %BACKUPFILE% -s 512M -A %lastbackup% -@ %BACKUPFILE%.catalog -v -R /cygdrive/c/users -z %PRUNELIST% -D -K bf:"%backuppassword%" >>%BACKUPDIRMSDOS%\backup.log
dar -t %BACKUPFILE% -K bf:"%backuppassword%" -v >>%BACKUPDIRMSDOS%\backup.log
 
rem En caso de error, evita que se cambie el archivo lastbackup.txt
if not exist %BACKUPFILE%.catalog.1.dar goto :end
echo %BACKUPFILE%.catalog >%BACKUPDIRMSDOS%\lastbackup.txt
 
goto :end
 
 
:initialbackup
rem INITIAL BACKUP
set BACKUPFILE=%BACKUPDIR%/%DATETIME%/initialbackup%DATETIME%
rem Crea subdirectorio para cada backup, sliced.
mkdir %BACKUPDIRMSDOS%\%DATETIME%
 
echo Creating %BACKUPFILE%
echo ***** INITIAL BACKUP START *****>>%BACKUPDIRMSDOS%\backup.log
echo Using dar -c %BACKUPFILE% -s 512M  -@ %BACKUPFILE%.catalog -v -R /cygdrive/c/users -z %PRUNELIST% -D -K bf:"password" >>%BACKUPDIRMSDOS%\backup.log
dar -c %BACKUPFILE% -s 512M -@ %BACKUPFILE%.catalog -v -R /cygdrive/c/users -z %PRUNELIST% -D -K bf:"%backuppassword%" >>%BACKUPDIRMSDOS%\backup.log
dar -t  %BACKUPFILE% -K bf:"%backuppassword%" -v >>%BACKUPDIRMSDOS%\backup.log
echo %BACKUPFILE%.catalog >%BACKUPDIRMSDOS%\lastbackup.txt
 
:end
Este sitio web utiliza cookies. Al utilizar el sitio web, usted acepta almacenar cookies en su computadora. También reconoce que ha leído y entendido nuestra Política de privacidad. Si no está de acuerdo abandone el sitio web.Más información
es/bat/dar_backup.txt · Última modificación: 2013/09/29 04:00 por nepenthes