Foros del Web » Administración de Sistemas » Unix / Linux »

No sé como hacer este script

Estas en el tema de No sé como hacer este script en el foro de Unix / Linux en Foros del Web. Me gustaría saber como se hace un script en linux que devuelva el nombre del proceso que consume más memoria. Gracias de antemano Se me ...
  #1 (permalink)  
Antiguo 02/12/2010, 14:10
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 5 meses
Puntos: 5
Información No sé como hacer este script

Me gustaría saber como se hace un script en linux que devuelva el nombre del proceso que consume más memoria.
Gracias de antemano

Se me olvidó decir que a ser posible en bash. Gracias amigos.

Última edición por lomasdelicioso; 03/12/2010 a las 03:39
  #2 (permalink)  
Antiguo 04/12/2010, 06:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: No sé como hacer este script

Puedes ver los procesos desde el terminal con el comando:

Código:
top
Quizás puedas usar el comando:

Código:
ps aux | grep "<cadena de busqueda>"
Saludos,
Gonzo13
  #3 (permalink)  
Antiguo 04/12/2010, 06:14
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: No sé como hacer este script

La función top no la comprendo bien, no sé como poner los procesos en orden según la memoria que chupan, y luego averiguar que proceso gasta más, con ps aux | grep "cadena a buscar" no sé que cadena poner porque el proceso puede ser cualquiera y de cualquier tamaño, todavía no me ha quedado claro como hacerlo.
Gracias por tu ayuda.
  #4 (permalink)  
Antiguo 05/12/2010, 10:06
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: No sé como hacer este script

Hola, mira la documentación del comando top ejecutando

Código:
man top
hay una opción que quizás te interese, "-b". Cuando estés ejecutando top, si pulsas la letra M mayúscula se ordenan los procesos por el consumo de memoria en orden decreciente (el que más consume el primero). Desconozco cómo podrías obtener eso en tu programa. Siento no poder ayudarte más.


Saludos,
gonzo13

Última edición por gonzo13; 05/12/2010 a las 10:17
  #5 (permalink)  
Antiguo 06/12/2010, 09:00
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 5 meses
Puntos: 5
Busqueda Respuesta: No sé como hacer este script

Con la orden...
Código:
top -bn 1
...me ordena los procesos, primero el que más CPU usa y así descendentemente, y puesto que el nombre de este proceso siempre se encuentra en la última palabra de la octava línea, ya solo me falta como llegar a esa palabra...
La orden cut parece interesante para ese trabajo pero aún así, no encuentro el modo de cortarla, ¿alguien domina la orden cut o sepa alguna otra manera?
  #6 (permalink)  
Antiguo 06/12/2010, 19:07
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años
Puntos: 35
Respuesta: No sé como hacer este script

En mi caso (Fedora 14), el nombre del proceso está en la columna 12. Por lo tanto, es posible usar awk, indicándole que use el espacio en blanco como separador:
Código:
top -bn 1 | awk -F' ' {'print $12'}
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #7 (permalink)  
Antiguo 07/12/2010, 06:39
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: No sé como hacer este script

Estoy conociendo el 'comando awk' que parece interesante para lo que yo quiero, pero esa orden que pusiste...
Código:
top -bn 1 | awk -F' ' {'print $12'}
...no me devuelve el programa que usa más CPU, por lo menos a mí que estoy en Ubuntu, no sé si tendrá que ver.
Gracias de todas formas, ya casi tengo resuelto el problema, a ver si alguien saca la solución antes que yo...wajaja.
  #8 (permalink)  
Antiguo 07/12/2010, 14:00
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: No sé como hacer este script

Gracias por vuestra ayuda, con este código ya me funciona:
Código:
((top -bn 1|head -8)|(tail -1))|cut -c61-999
A mí por lo menos me funciona, espero que a ustedes también, es un poco chapucera la manera de conseguirlo pero a mí me funciona.

******************Otro script****************
Como creo un guión que elimine un trabajo pasándole como argumento el nombre de la orden y a continuación espere al resto de trabajos en segundo plano...
*********************************************
No estoy muy puesto en control de procesos, la ayuda que me puedan aportar será agradecida.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:47.