A mano alzada, ¿a cuántos de ustedes les gustaría reiniciar sus servidores? No veo ninguna mano.
Los largos tiempos de actividad son impresionantes, ¿no es así? Lo convierte en uno de los chicos geniales que alardea de su tiempo de actividad de 853 días en un sistema de producción. Lo que no es tan bueno es que a tus usuarios les gusta usar /tmp
como su vertedero personal sin tener en cuenta la salud general del sistema o su derecho a fanfarronear sobre el tiempo de actividad. Y reiniciar no elimina los archivos del usuario, solo los del sistema; incluso ese alivio es temporal hasta que los servicios se reinician y los usuarios abren las aplicaciones.
Nota: Una excepción para no eliminar los archivos temporales del usuario después de un reinicio es habilitartmp.mount
, pero ese es un tema para otro artículo. Además, existen secuencias de comandos de limpieza del sistema para RHEL 7 y versiones posteriores.
Es imposible obligar a los usuarios a cumplir con la política de eliminación de archivos del /tmp
directorio de manera oportuna. Entonces, ¿qué debe hacer un administrador de sistemas frustrado cuando tiene docenas, cientos o incluso miles de /tmp
? directorios y usuarios a tratar? La respuesta es implementar secuencias de comandos de mantenimiento de archivos de usuario.
Puede crear secuencias de comandos de limpieza y colocarlas en crontab
para eliminar periódicamente archivos de usuario de /tmp
directorio. Es un servicio desafortunado pero necesario para proporcionar a sus usuarios. La mayoría de los administradores de sistemas experimentados le dirán que no debe eliminar archivos de /tmp
Sin embargo, a menos que sepa que no se están utilizando. Ese es un buen consejo. Algunos servicios escriben archivos de bloqueo en /tmp
, algunas aplicaciones lo usan y los usuarios lo usan. Entonces, ¿cómo determina qué archivos puede barrer su secuencia de comandos de limpieza sin ningún problema?
[ Descarga gratuita:hoja de referencia de comandos avanzados de Linux. ]
¿Qué hay de filtrar archivos por la última vez que se accedió? Es una buena opción si tiene un límite de tiempo para los archivos que quedan en /tmp
. Por ejemplo, si advierte a sus usuarios que los archivos quedan en el /tmp
El directorio se eliminará si no se ha accedido a ellos en dos días, de forma continua, deben tomar nota. El uso de la última hora de acceso para los archivos de usuario resuelve el problema si también excluye los archivos que pertenecen al usuario raíz. Por ejemplo, utilice:
find /tmp -type f \( ! -user root \) -atime +2
Este script muestra todos los archivos en /tmp
directorio que no es propiedad de root al que se accedió hace más de dos días. Ahora para agregar el interruptor de eliminación del comando:
find /tmp -type f \( ! -user root \) -atime +2 -delete
Copie ese texto en un archivo, hágalo ejecutable y cree un crontab
entrada que ejecuta este script cada ocho horas. Por ejemplo, puede agregar esto a su crontab
:
* */8 * * * /opt/scripts/tmp.clean.sh
Este script y programación aseguran que su /tmp
directorio se mantiene relativamente libre de basura. Sin embargo, no es infalible. Si un usuario decide volcar una gran cantidad de datos en /tmp
directorio, esta acción puede causar otros problemas, como no poder iniciar sesión en el sistema a través de SSH.
Mantenimiento del /tmp
directorio no es fácil. A los usuarios les encanta volcar archivos en /tmp
y dejarlos allí indefinidamente. Afortunadamente, para los infractores reincidentes, siempre existe la posibilidad de bloquear su cuenta o enviar un correo electrónico redactado enérgicamente sobre la pérdida de acceso a un sistema hasta que el administrador aclare el asunto. Estas tácticas suelen captar la atención del usuario y es raro que se cometan más delitos.