Listar usuarios y datos en servidor web linux

 

Este simple script bash nos listará en pantalla todos los usuarios y los datos correspondientes de todos los usuarios de nuestro servidor, ya sea local o web (generará un archivo en la raíz con el listado de usuarios).
-El tamaño de sus archivos.
-El archivo más pequeño
-El archivo más grande
También busca en la carpeta del usuario root.

 

#!/bin/bash
 
# obtiene el usuario root y lo guarda en el archivo "listadoUsuarios"
cut -d: -f 1,6 /etc/passwd | grep ^'root:'> listadoUsuarios
 
# obtiene los usuarios con id igual o superior a 500 y los guarda en el
# archivo "listadoUsuarios"
cut -d: -f 1,3,6 /etc/passwd | awk -F: '{if($2>=500) print $1":"$3}' >> listadoUsuarios
 
# recorremos todos los usuarios
cat listadoUsuarios | while read usuario;do
    username=`echo $usuario | cut -d: -f1`
    path=`echo $usuario | cut -d: -f2`
 
    # inicializamos las variables
    discUsage=0
    archivoPequeno=""
    archivoGrande=""
 
    # si el path del usuario existe
    if [ -d "$path" ];then
 
        # obtenemos el tamaño del mismo
        discUsage=`du -sh $path | awk '{print $1}'`
 
        # obtenemos el archivo mas pequeño
        archivoPequeno=`find $path -type f -printf "%s %P\n" | sort -n | head -1`
 
        # obtenemos el archivo mas grande
        archivoGrande=`find $path -type f -printf "%s %P\n" | sort -n | tail -1`
    else
        discUsage="No existe directorio"
    fi
 
    # mostramos los resultados
    echo $username
    echo '\tpath:\t\t\t'$path
    echo '\Uso de disco:\t'$discUsage
    echo '\Archivo mas pequeno:\t'$archivoPequeno
    echo '\Archivo mas grande:\t'$archivoGrande
done

listar-sh-tar

Usalo bajo tu responsabilidad.

 

 

Agregar comentario