tmpreaper es una herramienta para eliminar archivos a los que no se accede durante un cierto período de tiempo.
En las distribuciones de escritorio de Linux, esto es bueno para limpiar directorios como "~/Downloads", donde los archivos se acumulan durante un período de tiempo.
En distribuciones de servidor Linux, esto es bueno para limpiar archivos de registro antiguos o archivos de copia de seguridad que ya no son necesarios.
tmpreaper busca y elimina recursivamente archivos y directorios a los que no se accede durante cierto período de tiempo.
ADVERTENCIA: Antes de instalar tmpreaper y comenzar a jugar con él, asegúrese de comprender las implicaciones de ejecutar tmpreaper, ya que eliminará todos los archivos de su sistema que coincidan con los criterios dados. NO ejecute tmpreaper en / (directorio raíz), lo que podría eliminar archivos críticos necesarios para mantener su sistema en funcionamiento. No hay protección integrada en el programa tmpreaper para evitar que se ejecute en el directorio raíz, ya que eso dificultaría el uso de tmpreaper en un entorno chroot.
1. Instalar tmpreaper
En sistemas basados en Debian como Ubuntu, use apt-get:
$ sudo apt-get install tmpreaper
En sistemas basados en RPM como CentOS y RedHat, use yum:
$ sudo yum -y install tmpreaper
Sintaxis del comando Tmpreaper:
$ tmpreaper [options] <time_spec> <dirs>
2. Eliminar archivos que tienen N días de antigüedad
Para eliminar archivos que tienen 5 días de antigüedad, utilice "5d" como especificación de tiempo.
Por ejemplo, el siguiente comando eliminará los archivos de la carpeta ~/Descargas a los que no se accedió en los últimos 5 días.
$ tmpreaper 5d ~/Downloads
3. Eliminar archivos que no se modifican durante N días
De forma predeterminada, tmpreaper eliminará los archivos según el "Tiempo de acceso". Puede usar la opción "-m" para decirle a tmpreaper que elimine archivos según el "tiempo de modificación".
El siguiente comando eliminará los archivos que no se modifican durante 5 días en la carpeta Descargas.
$ tmpreaper -m 5d ~/Downloads
También puede usar los siguientes caracteres para el parámetro time_spec
- d – por días
- h – por horas
- m – por minutos
- s – por segundos
4. Eliminar enlaces simbólicos usando -s
Use la opción -s para eliminar también enlaces simbólicos, no solo archivos y directorios.
Además de limpiar los archivos y directorios, el siguiente comando también limpiará los enlaces simbólicos que coincidan con las especificaciones de tiempo dadas.
$ tmpreaper -s 5h ~/Downloads
5. Elimina todos los tipos de archivo usando la opción -a
Use la opción -a para eliminar todo tipo de archivos, no solo archivos regulares, directorios y enlaces simbólicos.
$ tmpreaper -a 5m ~/Downloads
6. Realice una ejecución en seco:pruebe la eliminación con la opción -t
Use la opción -t para probar qué archivos se van a eliminar.
Esto es muy útil cuando está ejecutando esto en un directorio importante y desea exactamente qué archivos se eliminarán antes de que realmente se eliminen.
Esta opción no elimina los archivos.
$ tmpreaper -t 5d ~/Downloads (PID 5415) Pretending to clean up directory `/home/lakshmanan/Downloads'. (PID 5416) Pretending to clean up directory `.tmp_versions'. (PID 5416) Back from recursing down `.tmp_versions'.
7. Forzar la eliminación de archivos usando la opción -f
Use la opción -f para forzar la eliminación de archivos. Normalmente, los archivos propiedad del usuario actual (EUID) sin acceso de escritura no se eliminan. Usar -f también eliminará esos archivos.
$ tmpreaper -f 5h ~/Downloads
8. No elimine archivos que coincidan con un patrón usando la opción –protect
Use –protect '
Por ejemplo, el siguiente comando eliminará todos los archivos excepto los archivos ".c".
$ tmpreaper --protect '*.c' -t 5h ~/my_prg Entry matching `--protect' pattern skipped. `hello.c' Pretending to remove file `./.hello.o'.
9. Usando tmpreaper en Cron
De forma predeterminada, cuando instala tmpreaper, colocará una entrada en crontab (/etc/cron.daily/tmpreaper). Leerá las opciones de /etc/tmpreaper.conf y ejecutará el comando tmpreaper basado en esas opciones.
El archivo /etc/tmpreaper.conf se explica por sí mismo y es fácil de entender. De forma predeterminada, eliminará los archivos que tengan 7 días de antigüedad en /tmp, excepto algunos tipos de archivos. Si planea usar esto, elimine la línea 'SHOWWARNING=true' de /etc/tmpreaper.conf.
Una vez que se elimine la línea, tmpreaper se ejecutará diariamente para limpiar los directorios especificados sin la intervención del usuario.