viernes, 30 de abril de 2010

Actualizador y Lanzador de Aplicaciones Escrito en Java.

He creado una aplicación muy básica en java, la cual se encarga de manter actualizados los sistemas que tenemos, descargando las nuevas versiones de los archivos a través del ftp, al final de la actualización, lanza el sistema.

Su configuración es desde un simple archivo de texto plano (params.conf), el cual contiene los siguientes parámetros:
username:nombre_usuario_ftp
password:contraseña
port=21
exe:si
path_exe:c:\ruta\ejecutable.exe
El parámetro "host", indica cual es el servidor ftp al que debe conectarse, "username" es el usuario ftp, "password" es la contraseña asociada, el puerto del servidor va configurado en "port". El parametro "exe" sirve para decirle si al final de la actualización debe o no lanzar algún ejecutable, el cual se define en "path_exe". Si los parametros host,username y password, no tienen valor, serán pedidos al usuario durante la ejecución.

lunes, 26 de abril de 2010

Convertir el contenido de un archivo de minúsculas a mayúsculas.

Pues me surgió la necesidad de convertir a mayúsculas un buen número de archivos, primero pensé en realizar un programa en algún lenguaje de programación, después cambié de opinión y opté por hacer un script en bash, suponiendo que me seria más rápido y fácil hacerlo, entonces intente primero con tr:
echo "aeiou-xyz" | tr '[a-z]' '[A-Z]'
AEIOU-XYZ
Hasta ahí parece que todo va bien, pero hay un inconveniente, cuando las palabras tienen acentos, no funciona bien, las letras que tienen acento, se quedan como estan originalmente, lo mismo pasa con awk:
echo "aeiouáéíóú" | awk '{print toupper($0);}'
AEIOUáéíóú
Bueno al final, después de documentarme un poco más llegue a una solución para salir del problema:
#!/bin/bash
for file in *
do
    tr '[a-z]' '[A-Z]' < $file | sed 'y/áéíóú/ÁÉÍÓÚ/' > /ruta/carpeta/salida/$file
done
----
NOTA: Como mi blog publica los artículos en el buzz, un amigo (Jose Luis Balle) ha dado una solución aún más simple usando solo tr:
echo "áaeóiou-xyz" | tr '[a-z][áéíóú]' '[A-Z][ÁÉÍÓÚ]'
ÁAEÓIOU-XYZ

martes, 13 de abril de 2010

AeroSQL - Administración Web para MySql

AeroSQL es una aplicación web libre (GPLV3), para administrar servidores MySql, el cual esta escrito en php y el framework Ext JS. La característica principal de este producto es que su gestión es muy intuitiva. Si deseas puedes probarlo.  Usuario: demo y contraseña demo.


Características principales:
  • Administración multiservidor.
  • Live Queries: Si se realiza una consulta a una única tabla y tiene un índice único, AeroSql le permitirá actualizar el conjunto de resultados, es decir, el resultado no es de sólo lectura (El índice único con el menor número de columnas es usado. Si la tabla no tiene un índice único, todas las columnas son utilizadas como índice).
  • SQL Monitor: Puedes ver todos los comandos SQL emitidos por el script de lado del servidor.
  • Ejecución de múltiples consultas: Puedes ejecutar un lote de instrucciones SQL delimitadas por un punto y coma.
  • Corrección para el manejo de valores NULL.
  • El usuario puede elegir que columnas desplegar para editar la tabla, con esto, al navegar entre las filas, la búsqueda sera solo sobre las columnas visibles, reduciendo el trafico de red.
  • Proporciona edición de columnas basada en los tipos de datos de MySql.
    • Los tipos de datos ENUM son mostrados dentro de una caja de selección.
    • El editor de columnas tipo TEXT es una ventana separada con una área de texto y un editor HTML WYSIWYG.
    • Columnas Numeric no permiten ingresar letras, incluso tampoco números negativos si la columna fué definida como UNSIGNED.
  • Facil uso

miércoles, 7 de abril de 2010

Configuración de nail para el envío de correos mendiante gmail

Debido a la tediosa y necesaria tarea de hacer respaldos de las bases de datos, cree un script sumamente sencillo que hiciera la labor. Para ello, instale nail como cliente de correo (el servidor tiene Ubuntu Hardy 8.04 LTS );

sudo apt-get install nail (si que me costo)

Posteriormente, hay que agregar unas lineas al archivo de configuración ubicado en /etc/nail.rc
set smtp=smtp://smtp.gmail.com:587
set smtp-use-starttls
set smtp-auth=login
set ssl-verify=ignore
set smtp-auth-user=[usuario]@gmail.com
set smtp-auth-password=[contraseña]
Probando configuración:

echo "mensaje mensaje mensaje mensaje" | nail -s "asunto" [usuario_destino]@[servidor].com

Ya teniendo nail listo, y el script que hace los respaldos, programé la tarea para que se ejecute dos veces por día. El script el cual hace el respaldo de dos bases de datos y de los roles quedó de la siguiente manera;