Usando un cronjob para limpiar / tmp

11

¿Es seguro usar un script bash y un cronjob para vaciar /tmpautomáticamente, o debería hacerlo de manera diferente?

Jochem Kuijpers
fuente

Respuestas:

13

/tmpse limpia en cada reinicio del sistema, pero para sistemas que no se pueden reiniciar con frecuencia, y especialmente si el único objetivo es limpiar /tmpun script se puede hacer para limpiarlo.

Ningún proceso debe mantener datos importantes allí, pero es importante que pueda limpiar /tmpsin interrumpir ningún proceso que escriba datos tmp.

Recomiendo usar tmpreaperpara eso.

Puedes instalarlo con sudo apt-get install tmpreaper.

Desde la página del manual:

tmpreaper busca y elimina de forma recursiva archivos y directorios vacíos a los que no se ha accedido durante un número determinado de segundos. Normalmente, se usa para limpiar directorios que se usan para el espacio de almacenamiento temporal, como "/ tmp". Lea la sección de ADVERTENCIAS de este manual.

Uso normalmente implica la invocación tmpreaperen /tmpel argumento de un tiempo de especificaciones. El argumento de especificación de tiempo puede ser desde ddías, hhoras, mminutos o ssegundos.

Utilice --testel comando para ejecutar en seco y obtenga un resultado de los resultados antes de ejecutar realmente el comando. Eso le dará una idea de lo que se eliminará antes de que realmente confirme cualquier cambio en el sistema de archivos.

Bruno Pereira
fuente
¡Gracias! Para responder completamente a mi pregunta, ¿puede explicarme por qué esto es mejor que usar una simple eliminación recursiva?
Jochem Kuijpers
1
No lo es, es más simple de usar y los argumentos utilizados son más comprensibles. Un simple rm -rfen una lista de archivos devueltos por findharía el trabajo también. Esta es "solo otra forma", ni siquiera decir que es la mejor, solo la que uso en los servidores que configuro.
Bruno Pereira
tmpreaperParece una buena herramienta, vale la pena usar --testy --showdeletescuando se prueba.
RichVel
3

Intenta agregar un cronjob que se ejecute

find /tmp/* -type d -mtime +5 -print0 | xargs -0 rm -rf 
find /tmp/* -type f -mtime +5 -print0 | xargs -0 rm -rf 

Esto eliminaría todos los archivos anteriores a 5 días.

turbophi
fuente