Descargas, Descargas

Creación de un plugin de munin para mldonkey en Linux

Munin es una herramienta de monitorización que recopila multitud de datos del sistema y los presenta en forma de gráficas incrustadas en una página web. La gran virtud de munin es su extrema sencillez a la hora de instalarlo y configurarlo. Trae de serie una grandísima cantidad de plugins para monitorizar casi cualquier variable del sistema.

En este manual veremos que también es extremadamente sencillo crear nuevos plugins para munin. Como ejemplo crearemos un plugin para monitorizar el consumo de ancho de banda de la aplicación mldonkey.

Ejemplos basicos de condicionales if en Bash Linux

Ejemplo: básico de condicional if .. then

#!/bin/bash
if [ "TextoPrueba" = "TextoPrueba" ]; then
        echo "expresión evaluada como verdadera"
fi

El código que se ejecutará si la expresión entre corchetes es verdadera se encuentra entre la palabra 'then' y la palabra 'fi', que indica el final del código ejecutado condicionalmente.

Ejemplo: Ejemplo básico de condicional if .. then ... else

#!/bin/bash
if [ "TextoPrueba" = "TextoPrueba" ]; then
        echo "expresión evaluada como verdadera"
else

Variables locales en Bash Linux

Las variables locales pueden crearse utilizando la palabra clave local.

#!/bin/bash
HOLA=Hola
function Prueba {
	local HOLA=Mundo
	echo $HOLA # IMPRIMIMOS LA VARIABLE "HOLA" Local
}
echo $HOLA # IMPRIMIMOS LA VARIABLE "HOLA"
Prueba  #EJECUTAMOS LA FUNCION
echo $HOLA # IMPRIMIMOS LA VARIABLE "HOLA"

Salida:

[root@unidadlocal.com ~]# sh prueba.sh
Hola
Mundo
Hola
[root@unidadlocal.com ~]# 

Este ejemplo debería bastar para mostrarle el uso de una variable local.

Ejemplo de una tubería sencilla con sed en Bash Linux

Ésta es una manera muy sencilla de utilizar tuberías.

ls -l | sed -e "s/[aeio]/u/g"

En este caso, ocurre lo siguiente: primero se ejecuta el comando ls -l, y luego su salida, en vez de imprimirse en la pantalla, se envía (entuba) al programa sed, que imprime su salida correspondiente.
Ejemplo: una alternativa a:

 ls -l *.txt

Probablemente ésta es una manera más difícil de hacer un ls -l *.txt, pero se muestra para ilustrar el funcionamiento de las tuberías, no para resolver ese dilema.

ls -l | grep "\.txt$"

Codigo en Prolog para calcular el inverso de una lista

% Si queremos calcular la inversa de una lista. 
% La inversa de una lista vacia es una lista vacia.
% La inversa de H|T es la inversa de T concatenada con H.

inversa([],[]).
inversa([H|T],L):-  inversa(T,R),  concatenar(R,[H],L).

?- inversa([a,b,c,d],[d,c,b,a]).
   Yes

% Utilizando un parametro acumulador.

inver(L1,L2):-inver(L1,L2,[]).

inver([],L,L).
inver([H|T],L,S):-inver(T,L,[H|S]).

?- inver([a,b,c,d],[d,c,b,a]).
   Yes

Codigo en Prolog para concatenar o unir dos listas lista

% Si queremos concatenar dos listas lista. 
% Concatenar una lista vacia con L es L.
% Concatenar X|L1 con L2 es poner el primer 
% elemento de la primera lista (X) más la 
% concatenación del resto de la lista (L1) con L2

concatenar([],L,L).
concatenar([X|L1],L2,[X|L3]):-concatenar(L1,L2,L3).

?- concatenar([1,2],[3,4],R).
R = [1, 2, 3, 4].

Codigo en Prolog para eliminar un elemento de la lista

% Si queremos eliminar un elemento de la lista.
% Si X es la cabeza de la lista, la cola T es la lista sin X
% Si X no es la cabeza de la lista, conservamos la cabeza de la lista 
%     como parte de la respuesta y continuamos eliminando X de la cola T.
elimina(X,[X|T],T).
elimina(X,[H|T],[H|T1]):- elimina(X,T,T1).

?- elimina(1,[1,2,3,4],R).
   R = [2,3,4]
?- elimina(1,R,[2,3]).
   R = [1, 2, 3]  
   R = [2, 1, 3]  
   R = [2, 3, 1]  

Codigo en Prolog para sacar el tamaño o longitud de una lista


% Si queremos hallar la longitud de una lista.
% La longitud de una lista vacia es 0.
% La longitud de cualquier lista es la longitud de la cola + 1.

longitud([],0).
longitud([H|T],N):-longitud(T,N0), N is N0 + 1.

?- longitud([a,b,c],L).
   3
?- longitud([a,b,c],4).
   No

Codigo en Prolog para resolver la Factorial de un numero

% La sintaxis es factorial(N, F) -> Factorial de N es F (el resultado se guarda en F)
factorial(0, 1) :- !.
factorial(N, F) :- N1 is N - 1, factorial(N1, F1), F is N*F1.

%el factorial se llama recursivamente dejando el resultado en F 

Codigo en Prolog para resolver la Serie de Fibonacci

% Recursividad
%Serie de Fibonacci
%1,1,2,3,5,8,13,21,34,55,.......

% Prolog no permite poner operaciones dentro de los argumentos ya que prolog funciona por comparacion
%no puede hacer las operaciones al momento, hay que hace la operacion antes 
%y se asigna a una variable mediante la palabra reserveda is
fibonacci(1,1).
fibonacci(2,1).
fibonacci(P,Z):-P>2,Q is P-1,fibonacci(Q,A),R is P-2,fibonacci(R,B),Z is A+B.


%Serie de Fibonacci
%F(n + 1) = F(n) + F(n - 1)
%1,1,4,7,19,40,....
fibonacci(P,Z):-P>3
	,Q is P-1
	,fibonacci(Q,A)
	,R is P-2
	,fibonacci(R,B)
Distribuir contenido