martes, 24 de julio de 2012

Moodle, logs y cómo salvar el culo...

Ayer Lunes día 23 de Julio de 2012 fue uno de los días más jodidos desde que estoy trabajando en esta empresa. Estamos en plena "justificación", es decir: "sacar/imprimir/generar miles de informes de toda la actividad de los últimos 12 meses", y todo se necesita "ya".

El pasado Viernes día 20 me avisaron de que "para ayer" deberíamos tener listos los accesos y calificaciones de todos los alumnos que han cursado algún plan formativo con nosotros. Lo de todos los años: ir a Moodle, entrar en el curso, generar informe y asunto zanjado. Nada más lejos de la realidad!

Comienza el "marrón" con la operación descrita en el párrafo anterior y bueno, la verdad es que aunque suene raro, hasta parecía divertirme y todo! Que si un informe por aquí, que si lo guardo por allá, hasta que "0 registros" encontrados para el curso XXXYYYZZZ: "No puede ser!"  pensaba en voz baja. "Voy a generar de nuevo el informe", pero nada: 0 registros! Llamo a mi compañero y le comento el problema: "Yo genero los informes cuando termina el curso, pues 'el Moodle' está configurado para eliminar los registros después de 100 días de inactividad", responde. El cielo se vuelve negro y yo comienzo a plantearme seriamente abandonar el país de inmediato, dejarlo todo y comenzar una nueva vida en Cuba vendiendo postales en el Malecón. "Keep calm and carry on!".

"Copias de seguridad, eso es" vuelvo a repetir en voz baja. Descargo vía "scp" los últimos backups de los cursos en cuestión y los intento restaurar en mi máquina local. Imposible! Ni aumentando "timeouts" , ni "tuneando MySQL", nada, ni una sola operación de restauración se realizaba correctamente...Las 16:05. 35ºC en el estudio. No sabía qué hacer. Bajo a tomar algo frío, subo de nuevo al estudio y pienso "puedo descargar toda la bbdd e intentar recuperar los logs de acceso, luego los exporto a XLS y asunto arreglado". No fue tan fácil como pensaba, pero sí, lo logré. Es muy probable que a nadie le interese cómo lo he logrado pero voy a dejarlo escrito por aquí, por que es probable que algún día necesite volver a leer este post.

1.- Restaurar la bbdd.

mysql -u root -p bbdddepruebas < copiabbdd.sql

2.- Ni se os ocurra trabajar con PhpMyAdmin o similar. En mi caso he usado MySQLWorkBench y no he tenido ni un problema. Hablamos de 2.100.000 registros en una sóla tabla.....

3.- Crear una "View" sólo con los registros del curso en cuestión. Sabéis que en Moodle todos los cursos tienen un "id" único, pues bien, yo he creado una "View" para cada curso del que había perdido los logs.

CREATE VIEW idcurso AS SELECT * FROM mdl_log WHERE course = 80

4.- Bien, ahora creamos una consulta sobre la vista pero con dos "INNER JOIN" sobre las tablas mdl_user(para obtener el nombre del usuario a partir del userid) y mdl_resource(para obtener el nombre del recurso/actividad a partir del resource_id).

SELECT
    FROM_UNIXTIME(x.time),
    x.ip,
    CONCAT(u.firstname, ' ', u.lastname) AS NombreAlumno,
    x.action as Accion,r.name as Informacion
FROM
    idcurso x
INNER JOIN mdl_user u ON x.userid = u.id
INNER JOIN mdl_resource r ON x.info = r.id
LIMIT 0 , 100000 


Pasteamos directamente la consulta en MySQLWorkbench, esperamos a que finalice la ejecución y listo! Ya podemos pulsar el botón exportar y generar el informe de acceso.


Así es como pasé el Lunes 23 de Julio de 2012, entre Moodle y sentencias SQL. Lo bueno: he entregado el trabajo a tiempo. Lo malo: era mi día libre.

Salud!



jueves, 31 de mayo de 2012

mount.nfs: access denied by server

Sigo bastante rayado con Fedora 17 y esta tarde me he encontrado con un pequeño problema al configurar un servidor nfs y montar los directorios desde un cliente:


root@mabu apermuy#mount -a
mount.nfs: access denied by server while mounting 192.168.20.50:/home/apermuy/Música



La solución es muy sencilla, basta con añadir "nfsvers=3" a la cadena correspondiente en el fichero /etc/fstab, en mi caso:


 #Polinico BTMS
192.168.20.50:/home/apermuy/Música /home/apermuy/Desktop/nfs/polinico/Musica    nfs     nfsvers=3,rsize=8192,wsize=8192,nosuid,soft     0 0



Ahora intentamos montar los directorios y comprobar que todo está en orden.


root@mabu apermuy#mount -a && df -hT
Filesystem                          Type      Size  Used Avail Use% Mounted on
rootfs                              rootfs     78G  8.1G   70G  11% /
devtmpfs                            devtmpfs  976M     0  976M   0% /dev
tmpfs                               tmpfs     985M   88K  985M   1% /dev/shm
tmpfs                               tmpfs     985M  1.3M  984M   1% /run
/dev/sda4                           ext4       78G  8.1G   70G  11% /
tmpfs                               tmpfs     985M     0  985M   0% /sys/fs/cgroup
tmpfs                               tmpfs     985M     0  985M   0% /media
192.168.20.50:/home/apermuy/Música/ nfs       801G  543G  218G  72% /home/apermuy/Desktop/nfs/polinico/Musica



Parece que si... :)

miércoles, 30 de mayo de 2012

Sublime Text Fedora 17

Dejo un pequeño "tip" para la instalación del editor  "Sublime Text" en Fedora 17. Es muy probable que al ejecutar "sublime_text" devuelva este error:

"./sublime_text: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory"

Un simple " ldd sublime_text" devolverá las dependencias de las librerias con las que ha sido compilado el binario.  En mi caso:

root@mabu Sublime Text 2#ldd sublime_text
        linux-vdso.so.1 =>  (0x00007fff72dff000)
        libgtk-x11-2.0.so.0 => /lib64/libgtk-x11-2.0.so.0 (0x0000003a3b800000)
        libgdk-x11-2.0.so.0 => /lib64/libgdk-x11-2.0.so.0 (0x0000003a3c000000)
        libatk-1.0.so.0 => /lib64/libatk-1.0.so.0 (0x0000003a3b400000)
        libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x0000003a42600000)
        libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x0000003a38a00000)
        libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x0000003a38e00000)
        libgdk_pixbuf-2.0.so.0 => /lib64/libgdk_pixbuf-2.0.so.0 (0x0000003a37a00000)
        libcairo.so.2 => /lib64/libcairo.so.2 (0x0000003a39200000)
        libpng12.so.0 => not found

No busqueis el paquete "libpng12.so.0" en Fedora 17 por que no lo encontraréis. La librerías compartidas para libpng 1.2.x se encuentran en el paquete libpng-compat, así que ese el paquete que debemos instalar. Así de simple:

yum install libpng-compat

y en medio minuto tendréis "Sublime Text" funcionando.




Mis impresiones sobre Fedora 17


Desde hace unas semanas uso Fedora 16( desde ayer Fedora 17 ) tanto el PC de escritorio como el portátil. El cambio no tiene un por qué concreto, simplemente me apetecía cambiar de distrubución y de entorno de escritorio.

Me ha gustado:
  • KDE 4. Mucho no, muchísimo. A mi enteder es mucho más sencillo e intuitivo que GNOME3. No voy a entrar en guerras ni afirmaciones absurdas, actualmente me gusta más KDE. Desactivando los efectos el entorno, Dolphin y demás es rapidísimo, desde mi punto de vista, está años luz por encima de GNOME3. 
  • Kernel 3.3. Indispensable contar con un Kernel actualizado. En esta versión se incluyen mejoras en el driver Nouveau para Nvidia;mejoras en los sistemas de ficheros Btrfs, FUSE, NFSD; mejoras en Netfilter(iptables)...Si queréis ver todas las novedades del Kernel 3.3 os dejo un enlace a los "features".
  • Yum. Rapidísmo. Por el momento no echo de menos apt.
  • Software: Versiones actualizadas de la mayoría de apps que uso a diario : Firefox, git, vim, Thundebird, K3B...
  • Instalación: Si sabes leer puedes instalar Fedora 16 / 17. Sencillo e intuitivo. 
  • Fedora Spins: Ya he hablado de los Spins en este blog, y vuelvo a insistir, echadle un ojo si no os convence la versión "out of the box" . http://spins.fedoraproject.org/
  • Documentación . Aunque la versión 17 está sin traducir, la documentación de Fedora es muy completa. Incluye apartados para: instalación, mantenimiento de paquetes, guía de seguridad. http://docs.fedoraproject.org/es-ES/index.htmlhttp://docs.fedoraproject.org/es-ES/index.html
 De momento estoy muy contento con esta gran distribución, de lo que no tengo duda, es que tarde o temprano regresaré a Debian GNU/Linux.

martes, 10 de abril de 2012