All pastes #2093700 Raw Edit

Unnamed

public text v1 · immutable
#2093700 ·published 2011-11-11 01:27 UTC
rendered paste body
#!/bin/bash

# Carlos Ferry Sauterel - Ingenieria Ejecución Informática #

MODELNAME=$(  awk  '/model name/ {print $4; count++; if (count == 1) exit}' < /proc/cpuinfo )
KERNELVERSION=$( awk '/Linux version/  {print $3}' < /proc/version )
MEMINFO=$( awk '/MemTotal/  {print $2}' < /proc/meminfo )

# Si el primer parametro es -ps #

if [ "-ps" =  "$1" ];   then
        # Listamos directorios que comienzen con número
        echo "UID         PID           PPID       STATUS        CMD"

        for i in `ls /proc |grep '^[0-9]'`
        do

                PID=$i

                if [ -f  "/proc/$i/status" ];   then
                   STATUS=$(awk '/State/ { print $3 } '  < /proc/$i/status | sed -e 's/(//' | sed -e 's/)//' )
                   UID=$( awk '/Uid/ { print $2 } ' < /proc/$i/status )
                   USERNAME=$(getent passwd $UID| sed -e 's/:.*//')
                   PPID=$( awk '/PPid/ { print $2 } ' < /proc/$i/status )

                   else
                   STATUS="NULL"
                   UID="NULL"
                   USERNAME="NULL"
                   PPID="NULL"
                fi

                if [ -f  "/proc/$i/cmdline" ];   then
                  CMDLINE=$( awk ' { print $1 } ' < /proc/$i/cmdline )
                  else
                  CMDLINE="NULL"
                fi
                echo "$USERNAME   $PID          $PPID      $STATUS    $CMDLINE"

        done
fi

if [ "-c" =  "$1" ];   then
        echo "Name         Data(kB)            Stack(kB)       Text(kB)        VolCtxtSwitches          NonVolCtxtSwitches"

        for i in `ls /proc |grep '^[0-9]'`
        do
              PPID=$( awk '/PPid/ { print $2 } ' < /proc/$i/status )
              PID=$i
              UID=$( awk '/Uid/ { print $2 } ' < /proc/$i/status )
              USERNAME=$(getent passwd $UID| sed -e 's/:.*//')
              CMDLINE=$( awk ' { print $1 } ' < /proc/$i/cmdline )
        echo "$USERNAME   $PID          $PPID      $STATUS    $CMDLINE"
        done

fi

if [ "-help" =  "$1" ];   then
        echo "Uso"
        echo " "
        echo "./$0, Muestra informacion relativa al nombre del modelo, version de kernel y datos de memoria"
        echo " "
        echo "./$0 -ps, Muestra informacion relativa a los procesos corriendo, su estado, PPID, PID y comando ejecutado"
        echo " "
        echo "./$0, Muestra informacion relativa al tamaño de segmentos"
fi

# Si no está definido el primer parametro #

if [ -z "$1" ]; then
   echo "ModelName: $MODELNAME"
   echo "KernelVersion: $KERNELVERSION"
   echo "Memory: $MEMINFO"
fi