Muy breve: ¿Cómo averiguar los N procesos que más CPU consumen?


Este sencillo guión nos lo permite

#!/bin/bash
[ $# -lt 2 ] || [ $# -gt 2 ] && echo "Uso: consumo.sh -c N " && exit 1
[ "$1" != "-c" ] && echo "Uso: consumo.sh -c N " && exit 2
[[ "$2" =~ ^[0-9]+$ ]] && ps e -o pcpu,state,args --sort pcpu|tail -n $2 && exit 0
echo "Uso: consumo.sh -c N , con 'N' número entero" 
exit 3

Cada línea significa:

  1. Comprobamos que se indican 2 argumentos. Si no salimos.
  2. Que el primero es ‘-c’. Si no salimos.
  3. Que el segundo es un número (para ello utilizamos la expresión regular ^[0-9]+$ y el comando [[ ]]) y, en este caso, ejecutamos la orden ‘ps’ ordenada por consumo de CPU y nos quedamos con el número de salidas indicadas en $2 y terminamos sin error.
  4. Se notifica que el segundo argumento debe ser un entero y se termina con el error 3.

Pregunta: ¿Por qué es necesario en la expresión regular ^[0-9]+$, poner ^ al principio y $ al final? ¿Es necesario?

Referencias:

Expresiones regulares: http://www.regular-expressions.info/

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s