Archivo

Archivo para la categoría ‘Scripting’

Bash script: Redondear número flotante

Lunes, 8 de Febrero de 2010 piponazo Sin comentarios

Otra entrada de bash script, que últimamente lo tengo que tocar mucho. Voy a explicar algunas formas de poder redondear un número flotante a un entero, algo que en algunas ocasiones se hace indispensable. Leer más…

GD Star Rating
loading...
  • Share/Bookmark

Bash script: Midiendo el tiempo de ejecución de programas

Sábado, 6 de Febrero de 2010 piponazo Sin comentarios

El comando time en GNU/Linux nos permite conocer muchos detalles sobre el tiempo de ejecución de otro comando o aplicación que ejecutemos. Cuando ejecutamos el programa time sin ninguna opción obtenemos una salida similar a la siguiente

 time comando argumentos
...
salida comando
...
real	0m0.010s
user	0m0.010s
sys	0m0.000s

Donde real indica el tiempo que ha pasado desde que se ejecuta el comando hasta que termina, user indica el tiempo usado por el proceso en modo usuario y sys muestra el tiempo usado por el sistema en manejar el proceso (modo kernel). Generalmente se coge como el tiempo de ejecución de un programa a la suma de las cantidades retornadas por user y sys, ya que si el sistema tiene una carga de procesamiento importante Leer más…

GD Star Rating
loading...
  • Share/Bookmark

Login SSH sin password

Jueves, 12 de Noviembre de 2009 piponazo 4 comentarios

ssh-icon

Hace tiempo pensé en escribir esta entrada pero se me han adelantado. Sin embargo el contenido de ese enlace está en inglés, y no todos conocen el lenguaje de shakespeare. En esta entrada os dejo una traducción de dicho artículo con algunas ligeras diferencias.

Leer más…

GD Star Rating
loading...
  • Share/Bookmark
Categories: Internet, Scripting, Terminal Tags: , , , ,

Scripting: Indicador de progeso

Miércoles, 11 de Noviembre de 2009 piponazo Sin comentarios

terminal-icon

Bueeeno, como al final no os ha parecido una tontería el anterior post (al menos a un par de personas) os dejo también este indicador de progreso para vuestros scripts  en bash. Fijaos en que la función calc ya la comenté en un post anterior. Básicamente a la variable OPERATIONS le asignamos el número de operaciones a realizar, en este caso el número de ficheros existentes en un directorio. A la variable INCPROGRESS le asignamos el incremento de progreso que añadimos en cada operación, y dentro del bucle vamos sumando y mostrando el progreso. Debido a que bash parece que no se lleva muy bien con los números reales, al final del bucle el progreso estará a un 99′XX por ciento, por lo que podemos optar al final por limpiar la línea actual de la terminal y mostrar nuestro anhelado 100% de progreso :P.

#!/bin/bash

function calc()
{
 echo "scale=4; $@" | bc ;
}

PROGRESS=0.0
OPERATIONS=`ls $DIR | awk '{count++} END {print count}'`
INCPROGRESS=`calc 100.0/$OPERATIONS`

for i in `ls $DIR`
do
	#Operación sobre $i
	PROGRESS=`calc $PROGRESS+$INCPROGRESS`
	echo -n -e "\rProgress: $PROGRESS %"
done
tput el1	#Limpia la línea
echo -n -e "\rProgress: 100%"
GD Star Rating
loading...
  • Share/Bookmark

Scripting: Obtener número de procesadores

Jueves, 8 de Octubre de 2009 piponazo Sin comentarios

terminal-icon

Voy a empezar hoy una nueva categoría denominada Scripting para introducir algunas líneas de comandos o scripts que pueden ser útiles para realizar algunas de las tareas que más solemos necesitar la gente que trabajamos a menudo con los bash scripts.

Aquí os dejo una sencilla línea que debería funcionar en cualquier distribución GNU/Linux. Simplemente busca la palabra cores en el fichero /proc/cpuinfo e imprime el cuarto campo de dicha línea. Después de esto ejecuto el comando exit para terminar la ejecución del programa, ya que si tenemos un procesador con varios núcleos, sin el comando exit nos aparecería el número de núcleos tantas veces como núcleos tengamos.

awk '/cores/ {print " ", $4; exit} ' /proc/cpuinfo

Recuerda si quieres asignar el número de cores a una variable tendras que escribir una línea parecida a la siguiente:

THREADS=`awk '/cores/ {print " ", $4; exit} ' /proc/cpuinfo`
GD Star Rating
loading...
  • Share/Bookmark