Descripción: Script que permite sacar un Reporte del Sistema, para un Reporte de Procesos, para un Reporte de Usuarios .
#! /bin/bash
if test $# -ge 1
then
echo "Este Script no utiliza parametros"
exit 0
else
clear
while true
do
echo " **********************************************"
echo " * *"
echo " * Seleccione una accion a realizar *"
echo " * *"
echo " **********************************************"
echo " * *"
echo " * Presione (A) para un Reporte del Sistema *"
echo " * Presione (B) para un Reporte de Procesos *"
echo " * Presione (C) para un Reporte de Usuarios *"
echo " * Presione (X) para salir *"
echo " * *"
echo " **********************************************"
read op
clear
#VARIABLES DE ENTORNO UTILIZADAS EN A)
#Tamaño del File System expresado en Kbytes
TAM_FS=`df -l --block-size=1024 | awk 'BEGIN{cant=0} {cant+=$2} END{print
"Tamaño del file system: "cant}'`
#Porcentaje del disco usado
PORC_DISCO_USAD=`df -l | awk 'BEGIN{cant=0} {cant+=$5} END{print
"Porcentaje del disco utilizado: "cant, "\tLibre: "100-cant}'`
#Tamaño del directorio actual
TAM_DIR_AC=`ls -l --block-size=1024 | awk 'BEGIN{cant=0} {cant+=$5}
END{print cant}'`
#Cantidad de archivos en el dir actua
CANT_ARCH_DIR_AC=`ls -l | cut -f1 -d" " | grep ^-......... | awk 'END{print
NR}'`
#Cantidad de subdirectorios en el dir actual
CANT_SUBDIR_AC=`ls -l | cut -f1 -d" " | grep ^d......... | awk 'END{print
NR}'`
#Fecha del reporte
FCHA_REP=`date '+Fecha del reporte: %d/%m/%y'`
#VARIABLES DE ENTORNO UTILIZADAS EN B)
#Cantidad de procesos en ejecucion
CANT_PROC_EJEC=`ps -aux | wc -l`
#Tamanio total de la memoria
TAM_TOT=`free -t | cut -f2 -d":" | cut -d" " -f7 | sort | awk 'END{print}'`
#Porcentaje de memoria utilizada
TAM_MEM_USA=`ps -aux | awk 'BEGIN{cant=0} {cant+=$4} END{print "Porcentaje
de memoria utilizado: "cant, "\tLibre: "100-cant}'`
#Uso de CPU
USO_CPU=`ps -aux | awk 'BEGIN{cant=0} {cant+=$3} END{print "Uso de CPU:
"cant}'`
#Usuario que utiliza mayor cantida de memoria
MEM_USU=`ps -aux | awk ' NR > 1 { vec[$1] +=$4}
END { VAN=1
for (x in vec)
if (VAN==1)
{MAYOR=vec
;
GRUPO=x;
VAN=0}
else
if (MAYOR < vec
)
{MAYOR=vec
;
GRUPO=x;}
print "El Usuario que usa mayor cantidad de memoria: " GRUPO
}'`
#Usuarios con mayor cantidad de procesos
CANT_PROC=`ps -aux | awk ' NR >1 { vec[$1] +=1}
END { BAN=1
for (x in vec)
if (BAN==1)
{MAYOR=vec
;
GRUPO=x;
BAN=0}
else
if (MAYOR < vec
)
{MAYOR=vec
;
GRUPO=x;}
print "Usuario con mayor cantidad de procesos: " GRUPO " con " MAYOR "
procesos"
}'`
#VARIABLES DE ENTORNO UTILIZADAS EN C)
#Cantidad total de usuarios
CANT_USER_TOT=`ypcat passwd | awk 'END{print NR}'`
#Cantidad de usuarios logueados
CANT_USER_LOG=`who | cut -f1 -d" " | sort | uniq | awk 'END{print NR}'`
#El usuario con que lleva mas tiempo logueado
USER_MAS_LOG=`who | awk '{ print $5 "\t"$1}' | sort | awk ' NR==1 ' | cut
-f2`
#COMIENZA EL MENU DE OPCIONES
case $op in
#EMPIEZA A EJECUTAR A
A|a)
echo " A)"
echo " **********************************************************"
echo " * Reporte del Sistema de Archivos *"
echo "
*--------------------------------------------------------*"
echo " * $TAM_FS *"
echo " * *"
echo " * $PORC_DISCO_USAD *"
echo " *
*"
echo " * Tamaño del directorio actual: $TAM_DIR_AC (Kbytes)
*"
echo " *
*"
echo " * Cantidad de archivos en el directorio actual:
$CANT_ARCH_DIR_AC *"
echo " *
*"
echo " * Cantidad de sub-directorios en el directorio actual:
$CANT_SUBDIR_AC *"
echo "
*--------------------------------------------------------*"
echo " * $FCHA_REP *"
echo "
**********************************************************"
sleep 12
;;
#TERMINA DE EJECUTAR A
#EMPIEZO A EJECUTAR B
B|b)
echo " B)"
echo "
******************************************************************"
echo " * Reporte de Procesos
*"
echo "
*----------------------------------------------------------------*"
echo " * Cantidad de procesos en ejecucion:$CANT_PROC_EJEC
*"
echo " *
*"
echo " * Tamaño total de la memoria:$TAM_TOT
*"
echo " *
*"
echo " * $TAM_MEM_USA *"
echo " *
*"
echo " * $USO_CPU
*"
echo " *
*"
echo " * $MEM_USU *"
echo " *
*"
echo " * $CANT_PROC *"
echo "
*----------------------------------------------------------------*"
echo " * $FCHA_REP *"
echo "
******************************************************************"
sleep 12;;
#TERMINO DE EJECUTAR B
#EMPIEZO A EJECUTAR C
C|c)
echo " C)"
echo "
******************************************************************"
echo " * Reporte de Usuarios
*"
echo "
*----------------------------------------------------------------*"
echo " * Cantidad total de usuarios: $CANT_USER_TOT
*"
echo " *
*"
echo " * Cantidad de usuarios logueados: $CANT_USER_LOG
*"
echo " *
*"
echo " * El usuario que lleva mas tiempo logueado:
$USER_MAS_LOG *"
echo "
*----------------------------------------------------------------*"
echo " * $FCHA_REP *"
echo "
******************************************************************"
sleep 12;;
#EMPIEZA A EJECUTAR X
X|x) echo "Fin del programa"
break
sleep 1;;
*) echo "opcion incorrecta"
sleep 1;;
esac
clear
done
exit 0
fi
0 comentarios:
Publicar un comentario