Posts Tagged ‘BASH’

Barra de progreso en tus scripts BASH

Jueves, Julio 9th, 2009

En estos días he estado realizando un script interactivo en BASH y decidí darle una buena presentación gráfica en el terminal usando dialog como generador de interfases , una de las dudas que me surgió es como colocar una barra de progreso en uno de los pasos que se tarda un poco de tiempo a manera de tener una presentación un poco más agradable al usuario.

Desgraciadamente la documentación de dialog no explora muy bien esta parte, así que me dedique a investigar y esto fue lo que obtuve:

Antes de continuar debes tener dialog instalado:

yum install dialog

Y ahora mediante el siguiente comando podemos probar más o menos el uso de la barra de progreso

find /etc/ -name *.conf 2>&1  | awk ‘{ print (Total+=1)/3.7,”=>”,$0}’ | dialog –gauge “Espere un momento…” 7 70

En donde el valor 3.7 es un factor que tiene que ser calculado mediante ensayo y error dependiendo del tiempo que se considere que va a tomar el comando find en ejecutarse, en este caso y para mi computador el valor 3.7 fúe el adecuado, como se ve no es un método muy adecuado para tener una barra de progreso debido a que no sabemos en realidad cuanto puede tardar nuestra acción en el computador de cada quien.

Otra caso de uso, puede ser el del siguiente script, el cual va a ir sumando 1% por cada segundo en la barra de progreso:

#!/bin/bash

i=0
while [ $i -le 100 ]
do
echo $i | dialog –gauge “Progreso…” 7 30
i=`expr $i + 1`
sleep 1
done

Usando modificaciones al script pasado puede darse una mejor manera de usar la barra de progreso en dialog, ya que por ejemplo y solo de manera academica ( no creo que sea un caso muy útil de uso ),  la variable $i podría ser el porcentaje de memoria RAM o CPU usado ( previamente calculado con otra operación ).

Otra manera que consegui de hacer una barra de progreso, pero sin usar dialog, más al estilo de la que se muestra cuando se usa el comando wget, se puede conseguir en:

http://www.theiling.de/projects/bar.html

La barra de progreso se ve más o menos así:

Barra de progreso

Para conseguir más información de su uso o descargar el código, visita el enlace anterior.

Condicionales en BASH

Jueves, Enero 22nd, 2009

Hace unos días me encontraba haciendo unos scripts en BASH y necesitaba realizar algunas comprobaciones con un simple if, sin embargo tuve un lapsus mental y se me olvido como revisar la página del manual en donde explican exactamente lo que es cada condicional y tuve que resolver googleando.

Hoy me acorde de repente la cuestión y para al menos no tener que googlear de nuevo y saber donde la puedo encontrar de nuevo fácilmente en caso de otro olvido, la coloco acá:

man test

En realidad test es un comando para comparar archivos sin embargo sus condicionales son exactamente iguales a los usados en programación de BASH script ( o tal vez internamente el interprete usa test para hacer las comprobaciones ), así que sirve, además de que están bien explicados :-D

Actualización automática de Blacklist en Dansguardian

Martes, Agosto 5th, 2008

Junto a un compañero de trabajo hemos realizado un cochino script en Bash que permite mantener actualizadas de forma automática tus archivos de blacklist ( listas negras ).

Cualquier comentario o recomendación usa el sistema de comentarios del blog, por favor.

El Script pueden verlo en formato html en:

http://www.richzendy.org/scripts/update_blacklist.sh.html

Crontabs instalados

Lunes, Enero 21st, 2008

Si quieres saber que crontabs en total tienes instalados en tu GNU/Linux, ejecuta en consola como root:

for i in `cut -d : -f 1 /etc/passwd` ; do crontab -l -u $i ; done

Get Adobe Flash playerPlugin by wpburn.com wordpress themes

Copyright © 2010 Richzendy.org. Search Engine Optimization by Star Nine. Distributed by Wordpress Themes