Tag bash - Userlinux.net

Posts sobre el tag bash

» Directorios por tamaño 24.Oct.2011 ~

Supongamos que queremos listar los 10 directorios que más ocupan en nuestro Linux, nos posicionamos y lanzamos un "du -cs * | sort -rn | head -n11". Ojo, no se incluye el -h (human readable) porque no funcionaría la ordenación. Enjoy it!.

~ 2 Comentarios ~ 453 Lecturas

Bash: variables de variables

23.Jun.2010 ~ 4 Comentarios ~ 1199 Lecturas

Estaba creando un pequeño script en BASH en el que necesitaba variables a partir de los nombres de otras variables, en tres palabras, "variables de variables". Pensé que sería sencillo, cuestión de jugar un poco con los caracteres que definen las variables -$(){}- no debería complicarse demasiado.

Sin embargo el método chino de prueba/error no sirvió de mucho porque despues de un buen rato seguía como al principio pero con menos paciencia y nulas ganas de perder más tiempo navegando entre manuales, Google y otros recursos que no me hacían avanzar.

Las alternativas, preguntar al amigo Juanjo (en cierto modo el script tenía relación con él), desconectar durante un rato y/o matar a un gatito. Visto que la última no era ni justa ni real -ni lo admitiría aunque lo hubiese hecho-, las dos anteriores si consiguieron sus frutos:

Categorías:
Tags:

Bash script: dormir a un bebé

12.Apr.2010 ~ 2 Comentarios ~ 1354 Lecturas

Me acabo de encontrar en el twitter de @javier_fazouro con uno de los enlaces más interesantes y divertidos en mucho mucho tiempo. Se trata de cómo dormir a un bebé con un bash script de 5 lineas. Primero leed el script y luego podéis ver el vídeo:

while [ 1 = 1 ]
do
	eject
	eject -t
done

No tiene desperdicio, la imaginación de la gente es bestial. ¡Buenísimo!

Categorías:

%CPU, top y ps

29.Sep.2009 ~ 2 Comentarios ~ 1247 Lecturas
Hace poco más de mes y medio escribí un post que se refería a un script para controlar los cuelgues de MySQL. En dos palabras: no funciona.

El motivo es el siguiente, en ese script se monitoriza el %CPU de un ps y se compara con el valor homónimo en top, craso error, puesto que ni de lejos son lo mismo:
  • %CPU top: Uso de CPU en porcentaje real.
  • CPU ps: Porcentaje de uso de CPU durante todo el tiempo de vida del proceso (una media entre CPU y tiempo de vida).
Mientras que el primero es instantáneo y ofrece porcentajes reales, el segundo no ofrece más que una media y, en procesos con tiempo de vida muy largo -como puede ser un mysqld- lo lógico es que ese porcentaje no sea muy elevado.

Lección aprendida, a ver si Monit o cpulimit nos pueden ayudar con este desaguisado.
Categorías:

Bash: Script que controla a MySQL

13.Aug.2009 ~ 2 Comentarios ~ 1362 Lecturas
Imagino que hablar de controlar se me antoja demasiado duro, pero bueno, una máquina que nos trae fritos con la carga de MySQL y todavía no hemos localizado el motivo, así que dejo esto en el cron:
#!/bin/bash
LOG_FILE='/var/log/compruebamysql.log'
MYSQL_PID=`pidof mysqld`
CPU_LOAD=`ps up $MYSQL_PID | tail -1 | awk '{ print $3 }'`
CPU_LOAD2=`echo $CPU_LOAD | sed "s/\./\,/g"`
CPU_INT=`printf "%.0f" $CPU_LOAD2`

if [ "$CPU_INT" -gt "80" ]; then
        echo "[ `date +'%d-%B-%G %H:%M:%S'` ] - Se ha reiniciado MySQL por sobrecarga" >> $LOG_FILE
        /etc/init.d/mysqld restart
fi
Tan simple como comprobar que la carga de CPU no excede un porcentaje concreto (el 80% en este caso) para hacer un restart y escurrir el problema. Sé que no es óptimo pero espero que me cubra algunos días.
Categorías:

Bash: contando líneas de código

09.Mar.2009 ~ 5 Comentarios ~ 831 Lecturas
A mi se me ha pasado alguna vez por la cabeza, pero por no ponerme a abrir todos los archivos del proyecto e ir sumando cual homínido cavernícola, me he decidido a usar el bash power:
# for i in `find trunk/ -name *php -type f`; do cat $i >> tmp.txt; done ; wc -l tmp.txt ; rm tmp.txt
83986 tmp2.txt
#
Seguro que hay formas más elegantes de obtener dicho número, pero -as ever- ha resultado curioso llegar a la solución del jeroglífico.

Por cierto, ya estamos cerca de las 90k, creo que hay libros que tienen menos así que otro objetivo vital cumplido (¡cáscaras!, no valen libros colaborativos, tendrá que ser algo propio).
Categorías:
Tags:

Archivo .screenrc

10.Feb.2009 ~ 3 Comentarios ~ 1673 Lecturas
Screen es una de esas herramientas de uso diario que -por lo menos a mi- me resulta imprescindible, extensible a cualquier sysadmin, linuxero y/o amante del la consola (terminal).

Y cada vez encuentro tips que la hacen más imprescindible si cabe. Lo penúltimo -nunca pierdo la esperanza- ha sido el fichero .screenrc, donde además de definir las preferencias de la aplicación, puedes organizar las ventanas y lo que se va a abrir en ellas:
Categorías:

Screen dentro de screen

30.Jan.2009 ~ 1 Comentarios ~ 908 Lecturas
Una de las pocas limitaciones que había visto en el uso diario de screen tenía que ver con abrir varios de forma anidada, puesto que los comandos de control (ctrl+a+a, ctrl+a+"...) solo funcionan dentro del primer screen.

Para hacer que funcione uno dentro de otro tan solo tenemos que cambiar la forma de acceder a los comandos de control, por ejemplo en vez de hacerlo con ctrl+a usar ctrl+e.

Entonces, a la hora de lanzar/recuperar un screen dentro de otro podemos indicarle esto mismo en linea de comandos con la siguiente opción:
$ screen -DRU -e^Ee
Así recuperaremos la última sesión detacheada del screen con soporte para utf-8 y comandos de control marcados por ctrl+e. Totalmente compatible con su predecesora.

Tip sacado de Unsec.
Categorías:
Tags:

Script: gzip or not gzip

28.Nov.2008 ~ 0 Comentarios ~ 915 Lecturas
That's the question. Aunque estas 4 lineas que a continuación voy a pegar son un nano-script para comprobar si se está comprimiendo en servidor y la diferencia de tamaño con la versión plana:
#!/bin/bash
wget -q -O plano $1
wget -q -O gzip --header="Accept-Encoding: gzip" $1
du -h plano gzip
rm plano gzip
Totalmente basado en ésta anotación del amigo Juanjo. Poco más que un copy&paste en toda regla, espero que un trackback lo arregle ;). Thanks anyway.
Categorías:

Bash: Buscando un paquete apt

11.Nov.2008 ~ 1 Comentarios ~ 781 Lecturas
¿Y si queremos buscar un paquete apt y no recordamos la sintaxis del apt-cache?, tampoco sabríamos hacer este script, pero bueno:
#!/bin/sh
# Buscar un paquete apt (mysearch.sh)
if [ "$1" == "" ] ; then
    echo "Has de especificar un paquete..."
    exit
fi
apt-cache search $1 | grep $1
Otro de los mini ejercicios de aprenda bash como si estuviera en primero que propuse durante la docencia.
Categorías:

Buscar

Cargando...

Últimos comentarios

  • reidrac
  • r0sk
  • Rodrigo Rega
  • minWi
  • r0sk
  • reidrac
  • r0sk
  • deady
  • errece
  • r0sk
  • flexo
  • r0sk
  • MarcosBL
  • r0sk
  • isra

Moneting

Valor de mi cuenta de Facebook según Moneting
Valor de mi cuenta de Twitter según Moneting

Tagcloud

ubuntu juegos 2007 web twitt futbol cumpleaños ds django mundial apple rfilms conciertos alemania_2006 lugo macosx programación frases mercurial lucux php userlinux debian blog rsidenotes twitter felicidades cakephp meme ssh bsd barça sidenotes iphone bash vacaciones blogs opinion blogsfera seguridad linux champions humor freebsd personal mysql nintendo openbsd canción sysadmin bake games ps3 2008 cake deportes hack films mac league

Archivo

Social

Enlaces de interés