Check the new version here

Popular channels

Shell Scripting en UNIX

Buenas a todos

Quiero compartirles un pequeño post con un pequeño script que he realizado, el cual lista los usuarios con el numero de procesos que se estan corriendo sobre cada usuario. En este script se puede entender un poco temas como asignacion de variables, imprimir variables, uso de esructura de control While, uso de arreglos que es un tema muy importante y algo mas complejo. De este ejemplo pueden ver tambien como imprimir el valor de los vectores, recorriendo sus indices, etc.
Cualquier cosa que no entiendan por favor me lo comentan para tratar de resolver sus dudas
Buenas

#! bin/bash
NUMLINEAS=`ps -fea | awk '{print $1}' | sort | uniq -c | wc -l ## Guardamos el numero de lineas, con esto controlamos el indice de los vectores que se van a crear
USUARIOS=`ps -fea | awk '{print $1}' | sort | uniq -c | awk '{print $2}' ## Lista los usuarios
PROCESOS=`ps -fea | awk '{print $1}' | sort | uniq -c | awk '{print $1'} ## Lista el numero de procesos de los usuarios

Ahora como la idea es imprimir el numero de procesos por cada usuario, vamos a crear dos vectores, en el primer vector vamos a guardar lo que se guardo en la variable USUARIOS y en el segundo vector lo que se guarda en la variable PROCESOS.

VECTUSU=($USUARIOS)
VECTPROC=($PROCESOS)

Posteriormente, creamos una estructura de control WHILE, la cual va a recorrer cada vector con sus respectivos valores y nos imprime lo que queremos: Los usuarios y el numero de procesos que esta ejecutando cada uno:

i=0
while [$i -le $((NUMLINEAS-1))]; do
echo "El usuario ${VECTUSU[$i]} tiene corriendo ${VECTPROC[$i]} proceso(s)"
let i=$i+1
done

Con esto recorremos los vectores leyendo e imprimiendo.

Espero les haya gustado y les sirva como referencia para que puedan practicar o usarlos y sacar elementos para que hagan sus propios scripts.
0No comments yet