¿Qué puede salir mal si / var / tmp está en un sistema de archivos temporal?

8

He leído que no debería montar / var / tmp como un sistema de archivos temporal (por ejemplo, como tmpfs), porque los archivos en / var / tmp no deben eliminarse al reiniciar. ¿Es eso correcto?

Supongamos que monté / var / tmp como tmpfs, por lo que su contenido se elimina en cada reinicio. ¿Eso sería malo? En caso afirmativo, ¿qué podría salir mal? ¿Qué tan malo sería?

DW
fuente
@JMoore, estoy preguntando sobre /var/tmp, no sobre /tmp. Mis disculpas si esto no estaba claro.
DW

Respuestas:

11

/var/tmpSe espera que los archivos sean persistentes en todos los reinicios. De la FHS :

El directorio / var / tmp está disponible para programas que requieren archivos temporales o directorios que se conservan entre los reinicios del sistema. Por lo tanto, los datos almacenados en / var / tmp son más persistentes que los datos en / tmp.

Los archivos a /var/tmpmenudo son archivos de caché o archivos temporales que no deberían desaparecer en caso de una falla repentina de energía. Sin embargo, no se puede esperar que vivan para siempre. Es común borrar archivos antiguos de acuerdo /var/tmpcon un cronograma.

Estos son algunos ejemplos del /var/tmpuso de:

  • Algunas implementaciones de vi (por ejemplo nvi) ponen sus archivos de recuperación de fallos /var/tmp. Si se trata de un sistema de archivos temporal, no tiene la posibilidad de recuperar nada. Vim coloca sus archivos de recuperación de fallos en el mismo directorio que el archivo que se está editando.
  • Utilizo un complemento de Firefox que me permite editar campos de texto en Vim. Para lograr esto, el complemento crea un archivo temporal en /var/tmp( /tmpaunque es el predeterminado) y pasa el archivo a Vim. Si mi computadora pierde energía mientras uso esta función, mi escritura estará segura y segura /var/tmp.
  • Herramientas de edición de texto como exy sudoeditponer archivos temporales en /var/tmp. Si /var/tmpse montó como tmpfs, correría el riesgo de perder datos debido a fallas inesperadas de energía.
  • La página de git-archive(1)manual tiene el siguiente ejemplo.

    archivo git --format = tar --prefix = basura / HEAD | (cd / var / tmp / && tar xf -)
    Cree un archivo tar que contenga el contenido del último commit en
    la rama actual y extráigalo en el directorio / var / tmp / junk.

    Es posible que /var/tmpse haya elegido el directorio para que el contenido del archivo extraído no se pierda debido a una falla de energía repentina.

  • Como /var/tmpse borra periódicamente pero nunca de manera inesperada, es común almacenar registros temporales y probar bases de datos allí. Por ejemplo, en la página de arpd manual, /var/tmpse usa como la ubicación de una base de datos de prueba en aras de algunos ejemplos.

    arpd -b /var/tmp/arpd.db
    Inicie arpd para recopilar ARP gratuito, pero no juegue con la funcionalidad del kernel.

En resumen, es poco probable que su sistema sufra daños graves si monta /var/tmpcomo tmpfs. Sin embargo, hacerlo puede ser indeseable, ya que correría el riesgo de perder información debido a fallas de energía y reinicios.

Gilles 'SO- deja de ser malvado'
fuente
Gracias. He leído las especificaciones de FHS y entiendo que, en principio, las aplicaciones pueden usar / var / tmp para almacenar cosas. Tenía más curiosidad sobre ejemplos específicos de lo problemático que podría ser en la práctica.
DW
@DW: Proporcionaré más ejemplos.
2
@DW También /var/tmpes probable que sea más grande que /tmp, por lo que algunas aplicaciones esperan colocar grandes archivos temporales allí. Si /var/tmpestá en tmpfs, su sistema puede quedarse sin memoria o comenzar a agitarse.
Gilles 'SO- deja de ser malvado'