Automatizar borrado de ficheros viejos
-
Al maravilloso SQL 2005, que falla cuando le da la gana, le tengo programadas unas copias de seguridad automáticas, las cuales se hacen correctamente, pero también le tengo puesto que borre las copias con más de 5 días de antiguedad, pero no las borra, no me hace ni puto caso…
Total, que necesito o bien un comando en MS-DOS que lo automatizaría en una tarea programada, o bien algún programa que sea capaz de borrar todos los archivos de una carpeta que tengan cierta antiguedad, necesito poder decirle que borre todos los archivos que tengan más de 5 dias.
Alguna idea?
Gracias
-
Microsoft publicó en el Technet una aplicación de línea de comando que se llama forfiles.exe que te permite generar una lista de ficheros de un directorio filtrando por varios criterios posibles (por ejemplo, por fecha) y luego puedes operar con esa lista de ficheros (por ejemplo, borrarlos).
Tienes información sobre forfiles en http://technet.microsoft.com/es-es/library/cc753551(WS.10).aspx
Si googleas forfiles.exe tienes muchos ejemplos para hacer lo que tú quieres como
Rem: Use Forfiles to Delete Old Files
o
Borrado de ficheros por fecha de creación | -
Muchas gracias lforos!!!
Aunque la verdad es que ayer me harté de buscar y me hice un proceso por lotes que me mantiene las 5 últimas copias de seguridad y va borrando la quinta que tiene almacenada
No lo hace por fechas, pero mantiene las últimas 5 copias, no es elegante, pero funciona de puta madre, jeje
Lo pongo por aquí por si a alguien le puede interesar:
–----------------------------------------------------
REM Proceso creado por Tassadar para borrar automáticamente las copias de seguridad del SQL que sean viejas
REM Mantiene siempre las últimas 5 copias + la del día actual (HOY)
REM
REM
REM Uso:
REM 1.--Meter en la carpeta PLANTILLA (X:\MSSQL\BACKUP\PLANTILLA) todas las carpetas (vacías) de todas
REM las bases de datos
REM 2.--Este proceso por lotes va en la carpeta X:\MSSQL\BACKUP
REM 3.--Se debe configurar el SQL para hacer las copias en X:\MSSQL\BACKUP\HOY en lugar de X:\MSSQL\BACKUP
REM 4.--No es necesario crear ninguna carpeta dentro de X:\MSSQL\BACKUP\ excepto la primera vez HOY y PLANTILLA
REM 5.--Ejecutar éste proceso UNA VEZ cada día (automatizándolo)
REMREM Primero hay que borrar la copia mas vieja
rd DIA5 /s /qREM Renombrar para que quede reflejado que las copias son un dia mas viejo
rename DIA4 DIA5
rename DIA3 DIA4
rename DIA2 DIA3
rename DIA1 DIA2REM Las copias actuales pasan a ser las del dia1
rename HOY DIA1REM Restauramos carpeta HOY con la escructuravacía según la plantilla
MD HOY
xcopy /e PLANTILLA HOYUn saludo