Archivos de la categoría ‘shell script’

h1

Un bucle en bash

mayo 13, 2009

Esta entrada es corta. En esta ocasión necesitaba tener una visión actualizada cada pocos segundos del estado de un filesystem en un servidor Linux, ya que estaban lanzando un proceso que almacenaba datos en /home y no se sabía exactamente el tamaño del fichero que se iba a generar.

Para tener una visión actualizada del estado de /home (en cuanto a porcentaje de ocupación, espacio libre) se puede hacer lo siguiente:

[root@tortola ~]# while (true) do
> df -kh | grep home
> sleep 5
> echo
> done
[root@hostname ~]# while (true) do

> df -kh | grep -B1 home

> sleep 5

> echo

> done

O lo que es lo mismo, un bucle en la shell de Linux (en mi caso, bash). Para salir del proceso, simplemente CTRL + C

Una modificación, si se prefiere, desde una sola línea:

[root@hostname ~]# while (true) do df -kh | grep -B1 home; sleep 5; echo; done
h1

Eliminar sesiones de un usuario en GNU/Linux

febrero 13, 2008

Esta es fácil. En uno u otro momento, cualquier adminstrador de un sistema operativo GNU/Linux se ve en la tesitura de tener que eliminar todas las sesiones de un usuario en el sistema. Si hay pocas y se tiene paciencia, se puede hacer tranquilamente ejecutando la sentencia ‘kill -9 num‘ para cada uno de los procesos del usuario.

Pero hay una forma más rápida de hacerlo. Ejecutando una combinación de comandos desde una sola línea:

ps -fu login | awk ‘{print $2}’ | awk ‘/[0-9]/’ | xargs kill -9

¿Qué es lo que hace esta línea? Mediante ps -fu login se listan todos los procesos cuyo propietario sea el usuario en cuestión (conectado con ‘login’); la sentencia awk ‘{print $2}’ se quedará con el pid de cada uno de los procesos; awk ‘/[0-9]/’ me va a eliminar la primera línea, la cabecera de las columnas listadas con el ps; finalmente, xargs kill -9 le va a lanzar la señal SIGKILL a todos los procesos del usuario.

Read the rest of this entry ?

Seguir

Get every new post delivered to your Inbox.