martes, 6 de julio de 2010

Cómo copiar toda una carpeta vía HTTP usando WGET (Ideal para copiar carpetas de imágenes de sitios Web)

Aquí les dejo el comando...

wget -r -np -A png -l 1 http://openlayers.org/dev/img/

  • -r Copia de forma recursiva
  • -l 1 Para seguir sólo un nivel de profundidad
  • -np No incluir carpetas padre (no parent folders)
  • -A png Para sólo descargar archivos PNG

Cómo borrar tablas de un esquema en Oracle

Para borrar todas las tablas de un esquema Oracle:

SELECT 'drop table '||table_name||' cascade constraints;' FROM user_tables;

Cómo insertar fechas en Oracle con formato variable

Para insertar fechas en Oracle con formato variable se debe utilizar la función to_date, por ejemplo:


INSERT INTO table_name
(date_field)
VALUES
(to_date('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss'));

Cómo migrar una BD de MySQL a Oracle

Esto me dió muchísimos problemas, hasta que por fín!!! Una alternativa para migrar BDs de MySQL a Oracle.

La mejor manera hasta la fecha y comprobada, es:

  1. Descargar el Oracle SQL Developer
  2. Descargar el Driver JDBC de MySQL
  3. Crear un usuario en Oracle a donde se migrarán los datos (full permisos)
  4. Logearse, por ejemplo a través del apex, como SYS o SYSTEM, y agregar el permiso RESOURCE con la opción ADMIN (mostrado abajo).
  5. Luego de haber agregado privilegios de admin al usuario Oracle, en las preferencias de SQL Developer debe agregar el driver JDBC de MySQL.
  6. Luego en la pestaña de Migrar datos de SQL Developer seleccionar Migración rápida y listo!

GRANT resource TO NOMBRE_USUARIO WITH admin OPTION;

NOTA: En mi caso tuve muchos problemas cuando tenía otras BDs en MySQL, por ello las borre todas, prevío respaldo utilizando:

mysqldump [opciones] --all-databases

Eeeeso es todo amigos...

Cómo crear usuarios en MySQL (rápidamente)

Para crear usuarios en MySQL debe ejecutar el siguiente comando en consola:


mysql> GRANT ALL privileges ON *.* TO 'u_pmos'@'localhost' IDENTIFIED BY 'u_pmos123';


Este comando creará un usuario llamado u_pmos (con contraseña u_pmos123) que se podrá conectar desde localhost y tener acceso a todas las bases de datos y tablas.

Librería de PHP para enviar correos (phpmailer)

Para enviar los correos desde php debemos instalar y utilizar la librería phpmailer.

Para instalar la librería deben copiar los siguientes archivos: class.phpmailer.php, class.smtp.php y phpmailer.lang-es.php a la carpeta indicada en la directiva include_path (generalmente /usr/share/php) de su archivo de configuración de php (php.ini).

El proyecto está disponible acá: http://sourceforge.net/projects/phpmailer/

NOTA: deben estar seguros de que la directiva no se encuentre comentada (los comentarios en estos archivos de configuración se realizan con un punto y coma ";" al comienzo de la línea).

Shell script para capturar datos de un puerto serial en Linux

A continuación presento un pequeño script que captura datos del puerto serial de una máquina con Linux y lo recibido es enviado a un archivo PHP que se encarga del procesamiento.

Esto fue utilizado para extraer datos de un tarificador de llamadas Samsung y enviarlas a un script PHP que almacena los datos en BD.


#!/bin/bash

RUTA_PROCESADOR=/var/www/Captura
RUTA_PS=/dev/ttyS0 #Puerto Serial

CONF_VELOCIDAD="4800"
CONF_NUMERO_BITS_TRAMA="7"
CONF_OPCIONES="-parenb"

#Configurando puerto serial para lectura
stty $CONF_VELOCIDA -F $RUTA_PS cs$CONF_NUMERO_BITS_TRAMA $CONF_OPCIONES

#Capturando data
cat $RUTA_PS | while read line; do php $RUTA_PROCESADOR/controlador_llamada.php "${line}" && echo ${line}; done >> $RUTA_PROCESADOR/traza.log &


El script configura primero el puerto a través del comando stty y luego con un simple cat sobre el archivo configurado (RUTA_PROCESADOR) se extraen los datos. Cada una de las líneas capturadas ${line} es enviada al script $RUTA_PROCESADOR/controlador_llamada.php.