SCRIPT PARA INFORMACION DEL SISTEMA, REDHAT

d
Autor: @Desconocido
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: