JOSEDU – WEB

Un ratito tranquilo…

  • Author: josedu
  • Published: May 7th, 2009
  • Category: linux
  • Comments: 3

script de bash para generar galería de fotos web

TAGS: None

Un simple script de bash, que genera las imagenes redimensionadas (normal,miniatura) del origen de un directorio, y genera el XML correspondienta para la galería flash que dispongo que utiliza dicho XML.

Hago uso para comprimir las imagenes del comando convert, una de las funciones que vienen con Imagemagick. El resto no es más que bash scripting.


#!/bin/bash
#Este script se utiliza para la generación de un album de fotos
#Version 0.44
#
#
# * $1 --> Ruta Directorio Origen Fotos
# * $2 --> Titulo Album
# * $3 --> Descripcion Album
# * $4 --> Fichero XML


TituloAlbum=$2;


DescripcionAlbum=$3;
FicheroXML=$4;


RutaDirectorioFotosOrigen=$1;
RutaDirectorioAlbumDestino=".";


RutaDirectorioAlbum=$RutaDirectorioAlbumDestino/$TituloAlbum;
RutaDirectorioAlbumSlides=$RutaDirectorioAlbum/slides/;
RutaDirectorioAlbumThumbs=$RutaDirectorioAlbum/thumbs/;


# Borramos el directorio si previamente se habia creado
rm -rf $RutaDirectorioAlbum;


# Creamos los directorios destino
mkdir $RutaDirectorioAlbum;
mkdir $RutaDirectorioAlbumSlides;
mkdir $RutaDirectorioAlbumThumbs;


# Creamos el inicio del xml
salida="\n\n";
salida=$salida"\n";


imagenes=$(find "$RutaDirectorioFotosOrigen" -iname "*.jpg" -printf "%f\n");


for i in $imagenes; do
printf "Procesando : "$i;
convert "$RutaDirectorioFotosOrigen/$i" -resize 180x180 "$RutaDirectorioAlbumThumbs/$i";
printf "...generado thumbnail...";
convert "$RutaDirectorioFotosOrigen/$i" -resize 640x640 "$RutaDirectorioAlbumSlides/$i";
printf "...generado slide...";
salida=$salida"\n";
printf "...generado XML...";
printf "....OK\n";
done
salida=$salida"\n\n";


#Volcamos el XML a un fichero


if [ -z $FicheroXML ]; then
echo "N0 existe argumento de fichero XML. Agregando a album.xml";
echo -e $salida >> album.xml;
else
echo "SI Existe argumento de fichero XML. Agregando a "$FicheroXML;
echo -e $salida >> $FicheroXML;
fi
echo "Proceso finalizado !!!";

script básico para hacer copia de seguridad de una base de datos en postgres local y remotamente

TAGS: None

#!/bin/bash
export RSYNC_RSH=”ssh -o Compression=yes”;
DESTINOLOCAL=”/backups/db/”
DESTINOREMOTO=”/backups/db/ordenador-de-pepito/”
#borramos los ficheros mas viejos que 30 dias del ordenador local.

find $DESTINOLOCAL -mtime +30 -exec rm {} \;

PGPASSWORD=”Passworddelabasededatos”;
export PGPASSWORD;

#ponemos un nombre basado en la fecha
fecha=`date ‘+%d’-'%m’-'%Y’__’%H’`
NOMBRE=”db-$fecha.bz2″
#Hacemos el dump de la base de datos y a su vez, la comprimimos
pg_dump -U usuario_db basededatosacopiar | bzip2 > $DESTINOLOCAL/$NOMBRE

#Aqui tenemos dos maneras de subirlo al servidor remoto:
# – con un rsync: simplemente sincroniza las carpetas, para mi más seguro. Más cómodo para el mantenimiento de las carpetas
# – con un scp (lo he dejado comentado), lanzariamos el find en remoto, o hariamos un script en la propia máquina remota
#        scp  $DESTINOLOCAL/$NOMBRE usuario@servidorRemoto:$DESTINOREMOTO
#        ssh – usuario@servidorremoto “find /home/josedu -mtime 30″

rsync -vauHLX –numeric-ids $DESTINOLOCAL usuario@servidorRemoto:$DESTINOREMOTO

De como utilizar el comando find …

TAGS: None

El comando find, es un comando muy potente de búsqueda desde linea de comandos, pero esta potencia a su vez se torna en su contra por la multitud de opciones y parámetros que nos encontramos. Aqui unos ejemplos que me han servido a mi para realizar varias tareas del día a día.

Ejemplo1:
Buscar los archivos temporales (o de respaldo), que me ha generado el editor de textos. Dos maneras diferentes

Comando : 

1: find . -name ._* -type f -print
2: find . -iregex “^.*\/\._.*$”

Ahora haciendo uso de tuberias y xargs seriamos capaz de borrar estos ficheros que ha encontrado

Comando:

1. find . -name ._* -type f -print | xargs rm -f
2. find . -iregex “^.*\/\._.*$” | xargs rm -f

Explicación : 
Busca en el directorio actual, los archivos de la forma “._nombrearchivo.ext”. Luego hemos hecho el uso de tuberias y xargs, para realizar la acción de borrado de dichos ficheros.

Ejemplo2:
Queremos buscar archivos con cierta/s extensiones en una o varias ubicaciones.

Tenemos dos maneras de hacerlo, con nuestras queridas a la vez que odiadas expresiones regulares, o con parámetros propios del find

Comando:
find /ubicacion/1 /ubicacion/2  -iregex “.*\(wmv\|avi\|mpg\|mkv\)$”
find /ubicacion/1 /ubicacion/2  -iname ‘*.avi’ -o -iname ‘*.mpg’ -o -iname ‘*.wmv’ -o -iname ‘*.mkv’

Nos devolveria alto tal que asi

/ubicacion/1/archivo124.mpg
/ubicacion/1/directorio3/archivo344.avi
/ubicacion/2/archivo12.mpg
/ubicacion/2/directorio7/archivo45.mkv

Ahora otra vez, si queremos lucirnos y aprovechar la potencia de los parámetros y de las tuberias, podriamos genernos una lista numerada con el nombre de los archivos encontrados. Explicado por pasos sería :

 - agregamos parámetro  -printf  ‘%f\n’ Esto devolveria algo tal que asi:

archivo124.mpg
archivo344.avi
archivo12.mpg
archivo45.mkv

 - Ahora hacemos uso de tuberia y usamos el awk de la siguiente manera : | awk ‘{print FNR “\t” $0}’. Esto nos imprime la lista numerada (FNR), tabulación (“\t”), y el nombre del fichero ($0). Devolvería el siguiente resultado

1         archivo124.mpg
2         archivo344.avi
3         archivo12.mpg
4         archivo45.mkv

- Ya si queremos rizar el rizo, y no queremos mostrar las extensiones, y mostrar solo el nombre del fichero, podriamos cambiar la anterior tubería, por esta otra:  | awk ‘{gsub(/\.(avi|mpg|wmv|mkv)$/,” “);print FNR “\t” $0}’  .Resultando:

1         archivo124
2         archivo344
3         archivo12
4         archivo45

 

Como pasar bases de datos de PostgreSQL de Latin-1 a UTF-8

TAGS: None

Porque?

se preguntaran algunos, en mi caso porque migre a PostgreSQL 8.3 y las dbs deben de tener la misma codificacion, con la anteriores 8.1 y 8.2 se podia tener varias codificaciones, pero a veces se hacia la pixa un lio,o al menos eso dicen, yo no tuve problemas,  he leido que para la 8.4 los volveran a implementar como dios manda.

Como?

Es muy simple, creamos un db tipo utf8 en el nuevo sistema  y restauramos un backup de la antigua db

Instalando Debian en un Pentium II (I)

Tags: , ,

Esta entrada sirva como registro de acciones y diario de los pasos que he seguido para poner a punto un viejo ordenador Pentium II.

Describiendo el ordenador:

El ordenador es un IBM Netfinity 3000. Un viejo servidor en su epoca que ahora por su características parece de risa. Decir que el acabado de este IBM, como no puede ser de otra manera es impecable, desde el diseño de la caja, hasta lo silencioso que es (y eso que tendra cerca de 10 años).

Las características (a grandes rasgos) de la criatura son :

Procesador: Pentium II 400 Mhz
Ram: 128 Megas ECC (a ver si soy capaz de encontrar mas memoria)
Discos Duros: 3 HD’s SCSI de 4 Gigas con una controladora Adaptec AHA-2940U/UW/D
T.Gráfica: S3 Trio 64.

Sistema Operativo:

Voy a optar por instalar una Debian 4.0 (Etch), desde su version netinstall. Empezaremos con un sistema básico, luego un entorno gráfico básico también (la opción sera XFCE). Luego se configurará para dar algún tipo de servicio, aun no tengo claro cual, pero algo se me ocurrirá.

Continuará….

Manual de CopyLeft

TAGS: None

Inicio una nueva sección en la que pretendo publicar artículos que me parezcan interesantes, acerca del movimiento copyleft.

Para empezar agrego un link con un libro que me parece interesante para quien no conozca de que va esta filosofía.

www.manualcopyleft.net

conexion a postgres en modo standalone

TAGS: None

Por si se produce algun “cuelgue” en la base de datos que obligue a conectar en modo single-user, aqui tenemos el comando basico:

su -c ‘postgres -D /ruta_al_data_del_postgres nombre_de_la_base_datos’ postgres

Para más opciones consultar el manual:http://www.postgresql.org/docs/8.1/static/app-postgres.html

¿Qué es un informático?

TAGS: None

Esta viñeta lo resume todo[photopress:7.gif,full,pp_image]

Dibujada por Mauro Entrialgo

Imprescindibles

TAGS: None

Para los que visitais esta página y querais más información a cerca del Copyleft, sigo poniendo mi pequeño granito de arena para la difusión libre de la cultura, así que os dejo unos enlaces de dos libros que cualquiera debería tener en sus estanterias (electrónicas).

El primer libro esta escrito por David Bravo, aférrimo defensor del copyleft, de la propiedad intelectual y de la libre difusión de la cultura: [Copia este libro].

El segundo libro, es la traducción al español de Free Culture de Lawrence Lessig, solo decir que es presidente de la Creative Commons: [Free Culture (en español)]

“He imprimido el informe…”

TAGS: None

Seguro que os ha pasado alguna vez esta situación:

- He imprimido el informe, lo tienes en tu mesa
- No se dice imprimido, se dice impreso !!!, a ver si aprendes a hablar.

En ese momento , cuando le preguntas al erudito que te corrige tan sabiamente :

- ¿Y por qué no es imprimido?
Y la contestación pronunciada como verdad irrefutable y que tienes que tomar casi como un dogma:
- Pero tio, aprende hablar, porque no se dice imprimido se dice impreso y punto.

Y bueno, que vas a hacer cuando sabes que tienes razón y el otro no. Pues callarte, acachar la cabeza y dar la razón como a los locos.

Eso sí, dejo para el que quiera curiosear, unos links::

conjugacion un diccionario que han hecho cuatro locos borrachos que le llaman de La Real Academia de la Lengua Española Conjugación Imprimir

Dudas Imprimido – Impreso

© 2009 JOSEDU – WEB. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.