Estamos pensando en hacer que nuestra aplicación web alojada en una máquina con Windows Server 2003 cree archivos temporales y "la deje" allí como tal. No tomaremos ninguna acción manualmente sobre ellos. Entonces, ¿estos archivos se eliminarán automáticamente? ¿O hay algún tipo de política que tenemos que configurar, como estos archivos deberían eliminarse después de 30 días más o menos ...
Actualizar:
Un servidor de producción difícilmente se apagará. ¿Qué hacer si los archivos tienen que eliminarse de alguna manera?
windows-server
temporary-files
deostroll
fuente
fuente
Respuestas:
No, no hay nada activado de forma predeterminada en Windows que eliminará automáticamente los archivos temporales. No en el apagado, no en el reinicio, nunca.
La herramienta Liberador de espacio en disco tiene una opción para hacerlo cuando se ejecuta.
La forma correcta de manejar esto es que su aplicación web se limpie de alguna manera. Es posible que deba eliminar archivos huérfanos cuando un usuario cierre sesión, por ejemplo. O una posibilidad aleatoria (pequeña) de que se realice un "barrido de limpieza" en cada solicitud. O una tarea programada que debe instalarse y configurarse para realizar la limpieza. O una tarea programada para ejecutar Disk Cleanup.
No se limite a "dejar cosas" en la carpeta temporal con la esperanza de que algo venga y limpie su desastre por usted.
Además, cuando vaya a limpiar sus archivos, solo toque los archivos que ha creado y no otros. Otras aplicaciones pueden necesitar esos archivos. Si el seguimiento de sus propios archivos es demasiado problemático, cree una carpeta que pueda vaciar de forma segura a voluntad.
fuente
Debido a que está hablando de un servidor con alta disponibilidad, una tarea programada es la mejor manera de hacerlo. Podría hacer algo tan simple como un archivo vbscript o por lotes que encuentre todos los archivos en una fecha determinada y los purgue. Ajuste la frecuencia de la programación en función de la rapidez con la que se acumulan los archivos temporales para minimizar la carga en el servidor en una ejecución determinada.
Thomas Maurer tiene un script de PowerShell que permite un nivel bastante alto de flexibilidad, como especificar la antigüedad de los archivos que se eliminarán, la carpeta de la que se eliminarán, etc.
ACTUALIZACIÓN: el sitio de Thomas Maurer no se está cargando para mí, por lo que realicé una búsqueda en Google para " eliminar archivos de PowerShell de más de 30 días " y los resultados parecen prometedores.
fuente