Borrado automático y programado de ficheros en función de su fecha de creación

Gracias al script que os voy a explicar a continuación podréis borrar fácilmente ficheros en función de su fecha de creación. Incluso programar esos borrados para que se hagan con la periodicidad que queráis

En mi caso administro algunos servidores que tienen aplicaciones que generan logs diarios. Estos logs, si se generan descontroladamente, pueden llegar a llenar el disco y dejar el sistema completamente colgado. Me interesaba programar borrados de los logs más antiguos para mantener un histórico de logs de 6 meses en lugar de uno infinito.

La mejor solución que he encontrado pasa por descargarse un fichero del Kit de recursos de Microsoft Technet. Se trata de una utilidad llamada forfiles.exe que permite, mediante parámetros, filtrar por fecha los ficheros de un determinado directorio y aplicar una acción a ese filtrado. Por ejemplo la eliminación de esos ficheros.

El fichero en cuestión se puede descargar del siguiente enlace: forfiles.exe

Un ejemplo de comando que borraría los ficheros con 180 (seis meses) días o más de antigüedad sería: C:\carpeta en la que está el exe\forfiles -pC:\carpeta que contiene los ficheros a borrar\ -m*.log -d-180 -c”CMD /C del @FILE”

En el ejemplo estamos borrando únicamente los ficheros con extensión .log. En caso de querer borrar cualquier fichero simplemente tendríamos que poner *.*

Si creais un fichero .bat con el siguiente contenido:

@echo off
rem se eliminan logs con más de 180 días de antigüedad.
C:\carpeta en la que está el exe\forfiles -pC:\carpeta que contiene los ficheros a borrar\ -m*.log -d-180 -c”CMD /C del @FILE”

Lo podéis meter en una tarea programada de Windows y hacer que se ejecute cada X tiempo para mantener el crecimiento de esa carpeta controlado.

Si ejecutáis el fichero forfiles.exe con el parámetro /? obtendréis más ejemplos de uso de esta utilidad.

Por favor, si te ha gustado este artículo puntúalo pulsando sobre las estrellas.

1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (36 votos, puntuación total: 4.69 de 5)
Loading ... Loading ...
3,564 veces visto

¡Compártelo! Enviar por E-mail Enviar por E-mail

30 comentarios hasta ahora »

  1. Miguel Rubio dijo,

    Escrito el 2 Octubre, 2008 @ 10:52 am
    Usando Mozilla Firefox Mozilla Firefox 3.0 en Windows Windows XP

    Util. Por cierto, 10.43.99.169. NO la 2.

  2. David dijo,

    Escrito el 2 Octubre, 2008 @ 12:39 pm
    Usando Internet Explorer Internet Explorer 6.0 en Windows Windows XP

    jeje gracias gracias. Sí. Esa IP tiene mi firma. Suelo usar el 69…. no sé… me gusta ;-)

    Por cierto tengo que darte la razón en una cosa. Iron Man no está mal. La vi el otro día y me gustó.

  3. Miguel Rubio dijo,

    Escrito el 2 Octubre, 2008 @ 1:22 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0 en Windows Windows XP

    Yo siempre tengo la razón.

  4. Roger dijo,

    Escrito el 5 Febrero, 2009 @ 5:24 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.6 en Windows Windows XP

    Muy util.
    Me servirá mucho en los servidores de mi curro.
    Saludos!

  5. Jose Manuel Gomez dijo,

    Escrito el 7 Marzo, 2009 @ 1:31 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.6 en Windows Windows XP

    Tienes algo para copiar en vez de borrar.

  6. David dijo,

    Escrito el 20 Marzo, 2009 @ 3:33 pm
    Usando Internet Explorer Internet Explorer 6.0 en Windows Windows XP

    Hola Jose Manuel. Para copiar en lugar de borrar es tan simple como cambiar el comando “del” por el comando “copy” y luego indicarle la ruta de destino.

    C:\carpeta en la que está el exe\forfiles -pC:\carpeta que contiene los ficheros a borrar\ -m*.log -d-180 -câ€CMD /C copy @FILE carpeta_destinoâ€

    Donde la sintaxis de “carpeta_destino” sería por ej c:\destino (recuerda poner la unidad)

    Si además quieres cambiar el nombre con el que se guarda el fichero en el destino pudes hacerlo añadiendo ese nombre después de la carpeta destino.

  7. Manuel García dijo,

    Escrito el 27 Abril, 2009 @ 11:42 am
    Usando Internet Explorer Internet Explorer 7.0 en Windows Windows XP

    Me viene perfecto para una instalación. Gracias.

  8. David Ornelas dijo,

    Escrito el 28 Abril, 2009 @ 8:21 pm
    Usando Opera Opera 9.25 en Windows Windows Server 2003

    Que tal, antes que nada gracias por el aporte, pero detecté un detalle con las fechas, que esta considerando en el archivo la fecha mas 5 horas. Es decir, si el archivo tiene fecha 25/04 a las 6 pm lo considera como 25/04 11 pm, el problema esta en que si el archivo fue creado después de las 7 pm ya lo toma como si fuera del 26/04. Sabes como arreglarlo o si tiene la funcionalidad para indicar alguna acción despues de ciertas “horas”??.

    Gracias

  9. David dijo,

    Escrito el 29 Abril, 2009 @ 7:00 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.9 en Windows Windows XP

    David pues desconozco las opciones aplicables a las horas pero me da que esta utilidad sólo afecta a días y no a horas. Me parece bastante extraño lo que comentas. Mira en la web de los recursos técnicos de Microsoft ya que son ellos quien han creado la herramienta. Igual no han detectado el bug que comentas.

  10. David dijo,

    Escrito el 29 Abril, 2009 @ 7:01 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.9 en Windows Windows XP

    Manuel me alegro de que te haya sido de utilidad :-)

  11. Silvia dijo,

    Escrito el 18 Mayo, 2009 @ 7:41 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.10 en Windows Windows XP

    Me ha sido muy útil; sin embargo, no sé como conseguir que funcione cuando el nombre de fichero a borrar contiene espacios en el nombre.
    En ese caso, me borra los demás, pero no estos últimos.
    Sustituyendo “del” por “echo” sí muestra el nombre completo del fichero, pero “del” parece que únicamente coge hasta antes del primer espacio.

    :S

  12. Pablo dijo,

    Escrito el 26 Mayo, 2009 @ 4:05 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.10 en Windows Windows 2000

    La verdad muy bueno me sirvió para lo que necesitaba hacer en el trabajo :)
    Saludos

  13. David dijo,

    Escrito el 26 Mayo, 2009 @ 6:40 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.10 en Windows Windows XP

    Me alegro de que te haya sido de utilidd Pablo :-)

  14. David dijo,

    Escrito el 26 Mayo, 2009 @ 6:41 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.10 en Windows Windows XP

    Silvia ¿Has probado a poner el nombre del fichero entrecomillado?

  15. Silvia dijo,

    Escrito el 31 Mayo, 2009 @ 8:32 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.10 en Windows Windows XP

    Sí, estuve probando con y sin comillas. Aunque no sabía si harían falta, ya que la propia orden â€CMD /C del @FILE†ya va entrecomillada. Además, esa misma pero con ‘echo’ en vez de ‘del’ sí que saca el nombre completo del fichero.

    De todas formas, al final hemos utilizado nombres de fichero que no contienen espacios, así que nos ha sido muy útil.

    Gracias por el artículo! :P

  16. Francisco dijo,

    Escrito el 25 Junio, 2009 @ 11:32 pm
    Usando Safari Safari 530.5 en Mac OS Mac OS X

    Me gustaría poder borrar archivos pero por “fecha de último acceso”, porque hay muchos archivos que son de consulta aunque no se modifican, por lo que no debería borrarlos.
    ¿Cómo puedo filtrar por “fecha de último acceso”?

    Muchas gracias por vuestra ayuda.

    Saludos.

  17. Daniel Nava dijo,

    Escrito el 2 Julio, 2009 @ 1:20 am
    Usando Mozilla Firefox Mozilla Firefox 3.0.3 en Windows Windows XP

    David tal y como comenta nuestro compañero Francisco sería muy útil borrar los archivos por la fecha de último acceso, estoy haciendo pruebas…

  18. David dijo,

    Escrito el 3 Julio, 2009 @ 1:51 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.11 en Windows Windows XP

    Ok Daniel mantennos informados :-) Yo la verdad es que no se si se podrá parametrizar ese último acceso de alguna manera.

  19. Ruben dijo,

    Escrito el 5 Octubre, 2009 @ 7:19 pm
    Usando Internet Explorer Internet Explorer 7.0 en Windows Windows XP

    Me parece una herramienta que hacia falta en DOS
    David, como hago para borrar los archivos que tengan mas de 4 horas, veo que el parametro -d es para dias no incluye horas.

  20. David dijo,

    Escrito el 5 Octubre, 2009 @ 7:35 pm
    Usando Internet Explorer Internet Explorer 8.0 en Windows Windows NT

    Ruben no creo que la herramienta tenga un modificador para aplicarle ratios de tiempo en horas. De echo en la web de Microsoft Technet en la que se mencionan todos los parámetros que se le pueden aplicar no se menciona nada de horas.

    La sintaxis sería: /d [{+|-}][{|}]
    Y la explicación: Selects files with a last modified date within the specified time frame.

    1.- Selects files with a last modified date later than or equal to (+) or earlier than or equal to (-) the specified date, where Date is in the format MM/DD/YYYY.

    2.- Selects files with a last modified date later than or equal to (+) the current date plus the number of days specified, or earlier than or equal to (-) the current date minus the number of days specified.

    3.- Valid values for Days include any number in the range 0–32,768. If no sign is specified, + is used by default.

  21. David Ornelas dijo,

    Escrito el 5 Octubre, 2009 @ 8:06 pm
    Usando Opera Opera 9.80 en Windows Windows XP

    Que tal…

    Solo para comentarles a cerca del problema que al igual que Silvia tuve o sigo teniendo, pero solamente pasa con Windows 2000, en W2k3 ya está resuelto, incluso ya incluye el ejecutable.

    Saludos

  22. David dijo,

    Escrito el 6 Octubre, 2009 @ 7:54 am
    Usando Internet Explorer Internet Explorer 6.0 en Windows Windows XP

    Gracias por tu aportación David. Ah! y gracias también a Silvia que en su día cuando escribió no le dije nada :-)

  23. Ruben dijo,

    Escrito el 6 Octubre, 2009 @ 4:09 pm
    Usando Internet Explorer Internet Explorer 7.0 en Windows Windows XP

    David Gracias por su respuesta,
    hay forma de borrar archivos cada n horas ?

  24. GarZa dijo,

    Escrito el 23 Octubre, 2009 @ 2:20 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0 en Windows Windows XP

    Hola, me ha venido genial esta herramienta, gracias.

    Un Saludo,

  25. David dijo,

    Escrito el 24 Octubre, 2009 @ 3:33 pm
    Usando Mozilla Firefox Mozilla Firefox 3.5.3 en Windows Windows XP

    Garza me alegro de te haya sido de utilidad.

  26. David dijo,

    Escrito el 24 Octubre, 2009 @ 3:36 pm
    Usando Mozilla Firefox Mozilla Firefox 3.5.3 en Windows Windows XP

    Rubén si te refieres a cómo planificar el borrado para que éste se efectúe cada x horas por supuesto que puedes hacerlo mediante las tareas programadas de Windows.

  27. Mebarak dijo,

    Escrito el 26 Octubre, 2009 @ 10:09 pm
    Usando Mozilla Firefox Mozilla Firefox 3.0.13 en Windows Windows XP

    Yo implante este scripcito para eliminar logs en un servidor de Sharepoint con una versión de SQL extress, en un servidor de desarrollo.

    Echo —————————————— >> log_borrado.txt
    Echo Borrado %date% >> log_borrado.txt
    Echo —————————————— >> log_borrado.txt

    forfiles -P “C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG” -M *.log -C “CMD /C del @FILE | ECHO @path” /D -05 >> log_borrado.txt
    forfiles -P “C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG” -M SQLDump*.txt -C “CMD /C del @FILE | ECHO @path” /D -05 >> log_borrado.txt

    forfiles -P “C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup” -M *.log -C “CMD /C del @FILE | ECHO @path” /D -05 >> log_borrado.txt
    forfiles -P “C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup” -M SQLDump*.txt -C “CMD /C del @FILE | ECHO @path” /D -05 >> log_borrado.txt

    con lo anterior elimino estos logs y me genera un archivo de texto con los registros de lo que borro

    esto se programo mediante una tarea programada de windows

  28. javito dijo,

    Escrito el 17 Noviembre, 2009 @ 5:44 pm
    Usando Mozilla Firefox Mozilla Firefox 3.5.2 en Windows Windows NT

    Alguien sabe que hacer con los archivos cuyos nombres tienen espacios? no los quiere borrar… snif snif

  29. Carlos dijo,

    Escrito el 11 Enero, 2010 @ 11:21 pm
    Usando Mozilla Firefox Mozilla Firefox 3.5.3 en Windows Windows XP

    Hola a mi no me acaba de funcionar cuando pongo este comando termina dandome este error.
    ¿Qué debo hacer para corregirlo?
    C:\forfiles -p”D:\auxiliar\Personal” -s -m*.doc -d-180 -c”CMD /C del @FILE”
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)
    can’t execute öCMD (error 2)

  30. JL dijo,

    Escrito el 17 Febrero, 2010 @ 3:38 pm
    Usando Mozilla Firefox Mozilla Firefox 3.5.5 en Windows Windows Vista

    Buenos días.
    He conseguido borrar archivos que contienen espacios
    orfiles -p”Ruta de los ficheros” -s -m*.sql -d-3 -c”CMD /C del 0×22@FILE”
    Con esto borro los ficheros con extensión sql más viejos de 3 días y que contienen espacios.
    Espero que te sirva
    JLuis

Comment RSS · TrackBack URI

Escribe un comentario

El email no se publicará ni cederá a nadie. Sólo es usado para fines técnicos de esta web como el control de comentarios y la inserción automática de avatares con gravatar.

Nombre: (Requerido)

E-mail: (Requerido). No se publicará.

Website:

Comentario: