Script que lista usuarios con mas de "X" MB

d
Nombre: Listador de Espacio
Autor: @kaldie
Descripción: Script que lista a los usuarios que ocupan más de una cierta cantidad de espacio en su home

#!/bin/bash 
# Asignar a la variable MAX el tamano maximo que queremos 

USUARIOS=$(ls /home/) 

# Maximo permitido por usuarios, en MB. Escribir el numero de MB, ejemplo MB=100 
MAX= 

# Carga en la variable usuarios todas las direcciones de los home con mas espacio ocupado que MAX
for i in $USUARIOS; do 
    DIR="/home/$i" 
    TAM=$(du -B 1048576 -s $DIR | awk {'print $1'}) 
        if [ $TAM -gt $MAX ]; then 
        DIR_SUP="$DIR_SUP $i"$'n' 
    fi 
done 


# Ahora se fija a quien corresponde cada direccion de home obtenido y guarda los usuarios en USU_SUP

archivo_usuarios=/etc/passwd 

oldifs=$IFS 
IFS=: 

while read -r usuario contrasena iud grupo comentario directorio shell  
do 
    IFS=$oldifs  
    for i in $DIR_SUP; do 
        direc="/home/$i" 
        if [ $directorio = $direc ]; then 
            USU_SUP="$USU_SUP $usuario"$'n' 
        fi 
    done 
    IFS=: 
done < $archivo_usuarios 


echo $'n'"Usuarios con mas de $MAX MB: "$'n'$'n'"$USU_SUP" 

Nota: El script debe ser ejecutado con permisos de Root. Asignar a la variable MAX el tamano maximo que queremos

0 comentarios: