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:
Publicar un comentario