clean-homes: Script para hacer limpieza en directorios home de clientes Ubuntu mediante BleachBit

En un post de 2017 publicamos un script para realizar limpieza mediante BleachBit de directorios home de profesores y alumnos en el servidor.

Ahora bien, En algunas máquinas, como por ejemplo, equipos de infolab o portátiles, el home directory de los usuarios se crea de forma local.

Para realizar limpieza de directorios home en aquellos equipos donde el home directory se almacena de forma local en la máquina, escribimos otro script:

#!/bin/bash
#
# nombre              : clean-homes
# descripción         : Realiza una limpieza en los directorios home encontrados en la máquina
#                       utillizando bleachbit
# autor               : Esteban M. Navas Martín
# fecha creación      : 06042017
# última modificación : 05112020
# uso                 : clean-homes
# instalación         : Guardar en  /usr/local/sbin/
# sugerencia          : Programar tarea cron:
#                       00 9    * * 7   root    /usr/local/sbin/clean-homes

#
# Copyright 2015-2020, Esteban M. Navas Martín 
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License at  for
# more details.
#

# Máxima profundidad del directorio de usuarios
mindepth=1
maxdepth=2

# Si bleachbit no se encuentra instalado, mostramos mensaje y finalizamos
if ! [ -x /usr/bin/bleachbit  ]; then
   echo "BleachBit no se encuentra instalado."
   exit 1
fi

for homedirectory in `find / -maxdepth $maxdepth -name home`; do

   echo "[$homedirectory]"

   for file in `find $homedirectory -maxdepth $maxdepth -mindepth $mindepth`; do

        user=`basename $file`
        id $user > /dev/null 2>&1

        if [ $? -eq 0 ]; then
           echo "Limpiando $homedirectory/$user"
           su $user -c "bleachbit --clean adobe_reader.cache adobe_reader.mru adobe_reader.tmp chromium.cache chromium.vacuum firefox.cache firefox.vacuum firefox.crash_reports google_earth.temporary_files java.cache flash.cache flash.cookies libreoffice.cache libreoffice.history sqlite3.history 2>/dev/null"
        fi
      done
done

Este script busca los directorios home que se encuentran en una profundidad máxima definida en la variable maxdepth.

De este modo garantizamos que se realice limpieza tanto si el directorio se encuentra en /, como por ejemplo: /home, como si se encuentra en un directorio inferior, como por ejemplo /var/home o /home/profesor.

Este script lo distribuimos a nuestros clientes Ubuntu mediante Puppet y lo colocamos dentro del directorio /usr/local/sbin/.

De este modo, cuando queramos, podemos realizar limpieza del sistema en cada equipo de una forma desatendida.

Be the first to comment

Por favor acceder para comentar.