Esta pregunta es sobre Ubuntu 14.10 en mi computadora portátil de desarrollador.
Tengo una carpeta /tmp
que es utilizada por una aplicación para poner cosas temporales allí. Esta aplicación generalmente crea una carpeta temporal en mi homedir y luego la elimina. Por alguna razón, eso no funciona cuando el homedir está encriptado. Entonces, en cambio, hice un enlace simbólico /tmp/foo
dentro de mi homedir. Mi aplicación puede escribir allí y hacer que sea una subcarpeta temporal.
Ahora /tmp/foo
se elimina cada vez que reinicio mi máquina. Hasta ahora, he recreado la carpeta manualmente después de reiniciar. Ahora aprendí en ¿Cómo se limpia el directorio / tmp? que hay un trabajo haciendo eso.
He mirado /etc/init/mounted-tmp.conf
pero mi bashfu y especialmente mi findfu no son suficientes para hacer lo que quiero. Aquí hay un extracto de ese archivo:
EXCEPT='! -name . ! ( -path ./lost+found -uid 0 ) ! ( -path ./quota.user -uid 0 ) ! ( -path ./aquota.user -uid 0 ) ! ( -path ./quota.group -uid 0 ) ! ( -path ./aquota.group -uid 0 ) ! ( -path ./.journal -uid 0 ) ! ( -path ./.clean -uid 0 ) ! ( -path "./...security*" -uid 0 )' # Remove all old files, then all empty directories find . -depth -xdev $TEXPR $EXCEPT ! -type d -delete find . -depth -xdev $DEXPR $EXCEPT -type d -empty -delete
Lo que quiero hacer es agregar una condición que lo haga eliminar todo dentro /tmp/foo
, pero no a /tmp/foo
sí mismo. ¿Cómo puedo hacer eso?
/tmp/foo
un directorio o un archivo?mkdir /tmp/foo
justo antesend script
?Respuestas:
/etc/init/mounted-tmp.conf
es parte delmountall
paquete, por lo que cualquier actualización de ese paquete y los cambios sugeridos se revertirán.En cambio, de acuerdo con el estándar de jerarquía del sistema de archivos (FHS) ;
En cuanto a / tmp :
Con respecto a / var / tmp :
Por lo tanto, debe cambiar su enlace simbólico para usar en
/var/tmp
lugar de/tmp
.fuente
/var/tmp
no es una buena idea?If a person is familiar with ... a certain, single instrument, they may have a confirmation bias to believe that it is the answer to/involved in everything.
Estoy diciendo que el OP está usando / tmp para algo para lo que no debe usarse - Usando / tmp como un martillo para su problema de mantener tmp-pero-no-del todo -tmp cosas. / var / tmp se DEBE mantener entre reinicios, por lo que es la respuesta correcta.No es estrictamente una respuesta a su pregunta, pero puede encontrar
/var/tmp
una ubicación más adecuada, ya que no se limpia durante un reinicio. Está diseñado para archivos temporales que no deben descartarse automáticamente después de un corto tiempo.Sin embargo, lo que a menudo hago es crearme una carpeta en / opt para almacenar cosas aleatorias que no quiero en casa. Ese es un lugar adecuado para poner cosas que están fuera del control del sistema operativo principal.
fuente
Al igual que:
Ejemplo:
Estoy de acuerdo con el usuario aap: debe ocuparse de esto en el software utilizado al volver a crear el directorio allí si son archivos tmp o utilizar otro directorio si no son archivos tmp que no se purgan.
fuente
find
comando funciona como se espera cuando se ejecuta manualmente, el directorio aún se elimina después de la edición/etc/init/mounted-tmp.conf
. Parece que hay algo más aquí.-path ./foo
e incluso,-name '*foo*'
y ninguna funcionó (en Ubuntu Server 14.04). Creo que ese no es el archivo correcto y estamos buscando en el lugar equivocado. Lo que estás sugiriendo debería funcionar, simplemente no parece.Es una mala idea tener archivos con valor futuro, escribir en el directorio / tmp (/ var / tmp, como lo sugieren otros, es un lugar mejor). Dicho esto, es posible que desee darle una oportunidad a chattr. Esto debe ejecutarse después de que la aplicación salga, pero antes de un apagado. Recuerde que esta operación no permitirá que nada escriba en ese directorio en adelante.
toque /tmp/foo/ddmmyy/.001_immute_me chattr + i /tmp/foo/ddmmyy/.001_immute_me
fuente
Ejecuta esto:
luego agregue esto a
/ etc / inittab,vea aquí: ¿ dónde está el archivo inittab? :Eso creará / etc / foo en el arranque si no existe, y luego lo vaciará.
Esto hará lo mismo en bash login:
fuente
/etc/inittab
. Esto se afirma clara e inequívocamente en su página de manual.