En el instituto, este año hemos empezado a usar masivamente Moodle, además de herramienta de apoyo a la docencia, como herramienta de comunicación entre el profesorado (en otra entrada hablaré sobre ello). Este uso masivo hace que nos preocupemos de realizar copias de seguridad de la plataforma. Llamando al CGA (que por cierto son encantadores) nos comentan que no hay problema, que se realizan copias periódicamente en los dos servidores que tiene el centro (seguridad y contenidos), que sería muy extraño perder los discos de ambos servidores a la vez. Pero dándole vueltas a la cabeza, pensé que si nosotros teníamos copias de los cursos, aumentaríamos la seguridad y evitaríamos algún desagradable problema en el futuro.

Algo tan sencillo como crear copias de seguridad se complica un poco cuando no tienes acceso de admin a la máquina donde esta alojado Moodle.

La solución que se me ha ocurrido es la siguiente:

  • Activamos las copias de seguridad de todos los cursos: Nos vamos a Administración del sitio -> Cursos -> Copias de seguridad. Yo tengo todas las opciones activadas, en Mantener el valor 1 (para que solo me guarde la copia más reciente, y así no saturar los servidores del instituto) y lo tengo programado de Lunes a Viernes a las 8:00. Con ésto cada día a las 8:00 de la semana se crea una copia de seguridad que se queda en los archivos de cada curso.
  • Ahora vamos a descargarnos todas esas copias de seguridad de la forma más automatizada posible. La solución que yo he encontrado (que sé que no es la mejor ni la más elegante) es con el plugin iMacros de Firefox. He creado una macro como la siguiente:

    VERSION BUILD=7601105 RECORDER=FX
    TAB T=1
    CMDLINE !DATASOURCE Cursos_copia_seguridad.csv
    SET !DATASOURCE_COLUMNS 1
    SET !LOOP 1
    SET !DATASOURCE_LINE {{!LOOP}}

    URL GOTO=http://c0/moodle/files/index.php?id={{!COL1}}&wdir=%2F%2Fbackupdata&choose=
    TAG POS=1 TYPE=A ATTR=TXT:*.zip
    ONDOWNLOAD FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}} WAIT=YES

    Paso a comentar las lineas más importantes:

    • CMDLINE !DATASOURCE Cursos_copia_seguridad.csv Vamos a usar una fuente de datos externa, un simple archivo, donde pondremos el id de cada curso del que queremos guardar su copia de seguridad, a razón de una linea por id, para saber la id de un curso, entramos en él y nos fijamos en la URL . http ://c0/moodle/course/view.php?id=65. El archivo Cursos_copia_seguridad.csv tiene que estar en /home/usuario/iMacros/Datasources al menos en Ubuntu.
    • URL GOTO=http://c0/moodle/files/index.php?id={{!COL1}}&wdir=%2F%2Fbackupdata&choose= Esta es la dirección donde se almacenan las copias de seguridad en la Moodle de mi instituto donde {{!COL1}} se irá modificando en un bucle por cada uno de los id’s que coloquemos en el fichero Cursos_copia_seguridad.csv
    • TAG POS=1 TYPE=A ATTR=TXT:*.zip
      ONDOWNLOAD FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}} WAIT=YES
      Estas tres lineas le dicen a iMacros que descargue el enlace que hay que termina en .zip (en mi caso solo habrá un enlace .zip porque así lo he configurado) y que espere a que se termine la descarga

Ya lo tenemos todo configurado, ahora simplemente cuando llegas por la mañana, abres Mozilla y en la barra de iMacros pulsamos en Ejecutar (Bucle) escribiendo en la casilla Max: el número de lineas que tenga nuestro fichero csv. Para no tener que estar pulsando en descargar cada uno de los ficheros .zip, configuramos Firefox para que los descargue automáticamente, Editar -> Preferencias -> Aplicaciones y en Archivador ZIP elegimos Guardar Archivo.

Y esto es todo, si alguien tiene una solución aún más automática por favor que la comparta, supongo que con cron y wget o algún programita en bash, python o perl se podría hacer mucho más elegantemente, como tenia prisa, me funciona bien, solo me requiere un click por las mañanas y tengo otros problemas, por ahora lo dejaré así.