Activar el log de querys en MySQL

Si alguna vez necesitas hacer un seguimiento de las queries (o consultas) que está haciendo una aplicación puedes hacerlo activando el log de queries de MySQL.

Edita el fichero: /etc/mysql/my.cnf

busca la línea:

#log		= /var/log/mysql/mysql.log

y quita la almohadilla del comienzo (que sirve para convertir la línea en un comentario).

Puedes usar un archivo diferente de: /var/log/mysql/mysql.log, pero asegúrate de que MySQL tiene persmisos de escritura en él.

Después basta con reiniciar el MySQL:

sudo /etc/init.d/mysql restart

Una vez hecho esto todas las querys quedarán almacenadas en este archivo. No es muy recomendable tenerlo activado en un servidor en producción ya que podría ralentizar mucho las consultas.

menéame menéame -

Caricaturas online

Acabamos de poner en marcha un nuevo proyecto para ofrecer un nuevo y original servicio: caricaturas online. Envíanos tus fotos o las fotos de amigos, amigas y familiares y haremos divertidas caricaturas con ellos.


Caricaturas online

menéame menéame -

Cambiar el tamaño de un grupo de imágenes en Ubuntu

Hoy he encontrado este curioso “truquillo” que permite cambiar el tamaño a un montón de imágenes a la vez. Se trata de usar un scrip para Nautilus (el explorador de archivos de Ubutnu).

Primero descargamos e instalamos el script:

#  #descargarse el script...
# wget http://ossiriand.net/rhosgobel/scripts/Resize_images
# #make it executable
# chmod u+x Resize_images
# #copiarlo al sitio correcto
# cp Resize_images ~/.gnome2/nautilus-scripts/
# # Instalar los siguientes paquetes
# sudo apt-get install imagemagick zenity rename

NOTA: Yo no he podido descargar zenity y aún así me funciona bien el script.

Una vez instalado abrimos el Nautilus:

- seleccionamos las imágenes a redimensionar,
- click con el botón derecho ‘Abrir con’->’Abrir con otra aplicación’,
- buscar el script. Está en ~/.gnome2/nautilus-scripts/ (~ es tu directorio home).

(NOTA: El directorio .gnome2/ es un directorio oculto, tendrás que hacer visibles los archivos ocultos para poder verlos: botón derecho->Mostrar archivos ocultos).

Cuando ejecutemos el script aparecerá una ventana en la que se nos pregunta cuál es el tamaño máximo al que queremos redimensionar.

Por cierto, las imágenes redimensionadas se guardan en una carpeta llamada ‘resized_to_x’ (donde x es el tamaño al que hemos redimensionado).

Vía: Aaron’s Stuff.

menéame menéame -

ZenCart se pasa a PHP5

Después del anuncio oficial del equipo de PHP en el que avisan que PHP4 dejará de tener soporte a finales de 2007, la gente de ZenCart ha decidido pasarse también a PHP5.

¿Qué supone esto? Por lo pronto, la versión 1.4 será incompatible con PHP4 y el requisito mínimo será usar PHP5.2. Sin embargo, la cercana versión 1.3.8 de ZenCart sí que tendrá soporte para PHP4. El soporte para la serie 1.3.x se mantendrá durante seis meses a contar desde la aparición la la versión 1.4.0. Este soporte no añadirá nuevas características al software pero al menos se irán publicando parches de seguridad y correcciones de fallo que se detecten.

¿Y qué consecuencias tiene esto para los usuarios de ZenCart? La consecuencia principal es que si no se empiezan a usar servidores con la versión adecuada de PHP en aproximadamente un año se estará usando un software sin soporte que no podrá tener ya parches de seguridad.

Puede no parecer muy preocupante ya que en la actualidad existen un increíble número de tiendas que usan la versión 1.2.5 de ZenCart sin aplicar los diferentes parches de seguridad que han aparecido. Sin embargo tener un software tan antiguo y sin parchear es un grave riesgo que puede evitarse fácilmente (no por dejar la puerta del coche abierto nos lo van a robar, pero no es nada recomendable).

Y hablando de la versión 1.2.5, han avisado que su ciclo de vida ha terminado y no va a tener soporte. Los nuevos parches de seguridad no estarán disponibles para ella.

El anuncio oficial aquí.

menéame menéame -

Convertir a .avi y extraer sonido de los vídeos de Youtube

Me habéis preguntado ya varios cómo se pueden convertir a formato avi los vídeos descargados de Youtube. En Linux existe un programa llamado ‘ffmpeg’ que permite hacerlo de forma muy sencilla. Basta con usar:

ffmpeg -i nombre_video_descargado.flv nombre_fichero_destino.avi

Si, además, quieres extraer el audio y meterlo en un fichero wav se puede hacer así:

ffmpeg -i nombre_fichero_destino.avi nombre_nuevo_fichero_audio.wav

Es posible que no tengas instalado el ffmpeg, puedes instalarlo (en Ubuntu) así:

sudo apt-get install ffmpeg

menéame menéame -

¿Cómo saber qué locale están instalados con PHP?

Si intentamos mostrar una fecha en PHP es posible que nos encontremos que salga con el formato:

July 31, 2007

Para que se muestre correctamente debemos usar el “locale” correcto que haga que se muestre la fecha en el formato adecuado. Los locales más habituales son del estilo de éstos:

es_ES
es_ES.ISO_8859-1

Para establecer un locale se usa la siguiente función:

@setlocale(LC_TIME, ‘es_ES’);

El problema es que hay que hay que poner el nombre exacto del locale ya que de otra forma no funcionará. Aquí tenéis un sencillo script en PHP que te ayudará a saber qué locales están instalados en tu servidor:

<?php
echo "<hr><br>'Locale' disponibles:<br>";
echo '<pre>';
system('locale -a');
echo '</pre>';
?>

Si quieres que se muestren sólo los españoles:

<?php
echo "<hr><br>'Locale' disponibles:<br>";
echo '<pre>';
system('locale -a | grep -i es');
echo '</pre>';
?>

menéame menéame -

MySQL y Mono

Estoy empezando un proyecto en Mono y la primera dificultad que me he encontrado ha sido añadirle soporte para MySQL. Se tarda muy poco en ponerlo en marcha, lo que me ha costado ha sido descubrir cómo hacerlo:

  • Descargar el último conector de la web de MySQL. Verás que sólo hay paquetes para MS Windows. Descárgate el paquete sin instalador.
  • Descomprime el fichero y copia el fichero bin/MySql.Data.dll a tu directorio de Mono (en mi caso es /usr/lib/monodevelop/bin). En ese directorio probablemente habrá alguna otra dll. Prueba a usar el comando:
    locate .dll

    para ver dónde puede estar tu directorio. Por cierto, necesitarás permisos de administrador.

  • Registra la dll usando el comando:
    gacutil -i MySql.Data.dll

    .

  • Si usas el Monodevelop tendrás que añadir el soporte MySQL a tu proyecto. Click derecho sobre “Referencias”-> Editar Referencias -> Ensamblado .Net. Navega hasta encontrar el fichero MySql.Data.dll y pincha el botón “Añadir”.

Después de esto ya deberías ser capaz de conectarte a una base de datos MySQL sin problemas.

menéame menéame -

VMWare ha dejado de funcionar al actualizar a Ubutnu 7.04 [Solución]

Con lo contento que estaba yo de tener actualizada mi Ubuntu a la 7.04 me encuentro con que el sistema que estaba usando hasta ahora para “reparar” el VMWare no funciona.

Después de investigar en los foros la opción que a mí me ha funcionado ha sido instalar el parche vmware-any-any-update109 que se puede descargar desde:

http://platan.vc.cvut.cz/ftp/pub/vmware/

(busca el fichero que se llame vmware-any-any-update109.tar.gz o algo similar).

Después he ejecutado de nuevo:

sudo /usr/bin/vmware-config.pl

¡y listo! Ha vuelto a funcionar.

Esto suena muy bonito, pero la verdadera historia ha sido un suplicio de unas dos horas rebuscando y probando cosas:

- He instalado y desinstalado el VMWare-Player, lo que me ha traído más complicaciones que soluciones.

- He probado varias soluciones que proponen en los foros, entre otras esta que parece que ha funcionado a algunas personas. Parecía que a mi me iba bien hasta que ha cascado casi en el último punto. Por si a alguien le ayuda pongo aquí lo que he hecho:

(en el artículo original en inglés lo explican para Gentoo, pero yo lo he adaptado a Ubuntu).

cd /usr/lib/vmware/modules/source/

sudo tar xvf vmmon.tar

cd vmmon-only/include

sudo gedit compat_kernel.h

En este fichero sustituyes esto:

#define __NR_compat_exit __NR_exit
static inline _syscall1(int, compat_exit, int, exit_code);

por esto:

#define __NR_compat_exit __NR_exit
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
static inline _syscall1(int, compat_exit, int, exit_code);
#endif

y luego he seguido con:

cd ../../

sudo mv vmmon.tar vmmon.orig.tar

sudo tar cvf vmmon.tar vmmon-only

sudo vmware-config.pl

- Después de muchas vueltas, finalmente he desinstalado todo lo relacionado con el VMWare Player, he reinstalado el VMWare-Server y he aplicado el parche anteriormente mencionado.

menéame menéame -

Buscar cadenas en ficheros de texto recursivamente

Con este comando podemos buscar texto en ficheros recursivamente a partir de una carpeta:

find ruta -type f | xargs grep cadena_que_buscamos

Donde:

  • ruta: es el directorio a partir del cual queremos buscar.
  • cadena_que_buscamos: su nombre lo dice, es el texto que buscamos.

Ejemplo: buscar el texto “oscommerce” en el directorio actual:

find . -type f | xargs grep oscommerce

(Enviado por Imanol).

menéame menéame -

Copias de seguridad MySQL automáticas con BASH y CRON

Hoy vamos a ver cómo programar la automatización de la copia de seguridad de una base de datos MySQL usando bash y cron.

Empezamos por crear un sencillo script que guarda la copia de seguridad de la base de datos comprimida en formato bz2:

#!/bin/bash
fecha=$(date +%Y%m%d)
mysqldump -uusuario -pclave base_datos > fichero_destino_$fecha.sql
bzip2 fichero_detino_$fecha.sql

Guardamos el scrip en un fichero llamado, por ejemplo ‘backup’ en la carpeta (por poner un ejemplo): /home/users/usuario/mysql_backups/. Debemos darle permisos de ejecución haciendo:

chmod +x backup

(o los permisos que creamos más convenientes en cada caso).

El fichero de destino tendrá un nombre con el siguiente formato:

fichero_detino_20070430.bz2

(Año/mes/día).

El siguiente paso es automatizar la tarea modificando el crontab. Para modificar el crontab basta con hacer:

crontab -e
0 0 * * 7 /home/users/usuario/mysql_backups/backup

Esto hace que todos los domingos a las 00:00 (hora del servidor) se haga automáticamente una copia de la base de datos. Recordemos que el formato del crontab es:

[minutos] [hora] [día] [mes] [dia_de_semana] [comando]

Notas:

  • El servidor debe tener instalado y funcionando el cron.
  • Ejecuta el script ‘backup’ a mano una vez para comprobar que genera bien la copia de seguridad.
  • Conviene comprobar, al menos una vez, que el script hace realmente las copias de seguridad con el crontab.

menéame menéame -

eXTReMe Tracker