Como administradores, nos vemos en la situación de tener que descargar copias de seguridad de cursos de años pasados, para trabajar de acuerdo a las políticas de retención de datos de nuestra institución.
Estas copias pueden entonces mantenerse por el tiempo que sea necesario en otra localización habilitada para ello, como puede ser un bucket S3 de Amazon, una carpeta en un servidor en nuestra institución o un disco duro.
En SaaS, las copias de seguridad se crean automáticamente de forma diaria, y se guardan en la Colección de Contenido para su acceso durante 30 días.
Para aliviarnos en la descarga de las mismas, Blackboard ha creado un script que nos permita descargar a una carpeta local o a un bucket S3 las copias de seguridad por lotes antes de que desaparezcan del servidor.
Puedes descargar el script desde Panel de administración > Cursos > Configuración del curso > Ajustes de archivo automático.
Descripción y parámetros
El script se invoca desde la línea de comandos y requiere de varios parámetros. Se invoca desde el directorio en el que se guardó, y se necesita tener instalado además:
- python3
- PIP
- Los paquetes de python
- Request
- Boto
La invocación básica sería:
python3 auto_archive_download.py [-h] -s SITE -u USER [ -f FILE | -b YYYY/MM/DD -e YYYY/MM/DD ] [-d] -o OUTPUT
En la siguiente lista, los parámetros posibles y su significado (en segundo lugar el modo largo):
-s site Nombre del sitio, inclusive protocolo. Ejemplo: https://ultra.elearningmedia.es
--site site
-u user Identificador del usuario, ha de tener privilegios de administración de sistema (rol Z), por ejemplo, administrator
--user user
-f file Archivo de texto con la lista de los identificadores de curso. Obligatorio si se omiten las fechas. Por ejemplo, descargas.txt
-file file
-b date Fecha de creación de los cursos desde la que descargar, en formato AAAA/MM/DD. Por ejemplo, 2020/01/01
--begin date
-e date Fecha de creación de los cursos hasta la que descargar, en format AAAA/MM/DD. Oor ejemplo, 2020/12/31
--end date
-o output El path donde vamos a guardar las copias. Puede ser local o S3. Ejemplo: /mnt/ad0s1c/archive
--output output
-h Imprime la ayuda
-d Modo debug
Ten en cuenta que:
- el usuario que se utilice ha de autenticar bien por LDAP o autenticación interna. No se permiten ni CAS ni SAML.
- WebDAV debe estar habilitado para poder utilizar este script. Puedes habilitarlo desde Panel de administrador > Gestión de contenido > Administración de funciones y herramientas, seleccionando Carpetas Web.
- el script pedirá la contraseña del usuario utilizado al comienzo de la ejecución
- el archivo contendrá únicamente un courseID por fila, sin ningún otro caracter ni separador
- si se van a utilizar fechas, habrá que especificar ambas. Se descargarán todas las copias de seguridad de cursos que fueron creados entre las dos fechas especificadas.
- los paths locales del output pueden ser absolutos o relativos, pero es importante que el directorio donde se va a descargar exista.
- Los archivos de copia de seguridad deben existir en /internal/autoArchive/ID-DEL-CURSO. Si no existen, el script fallará.
- el script descargará la copia de seguridad más nueva de cada curso
- recuerda no correr varias instancias del script en paralelo, ya que generaría problemas de rendimiento.
Ejemplos
Veamos varios ejemplos. En ellos, se invoca el script desde el directorio donde está localizado, que coincide con el del entorno virtual. El entorno virtual se llama env.
Descargar un grupo de cursos por fecha
Especificamos la fecha de incio y fin, descargándose entonces todas las copias de seguridad de los cursos que fueron creados entre esas dos fechas. Esta opción es útil si utilizamos Períodos. En el ejemplo, descargamos los cursos creados entre el 1 de enero y el 1 de marzo de 2021.
Windows:
c:\> cd %userprofile% c:\users\jsmith> .\env\scripts\activate (env) c:\users\jsmith> py auto_archive_downloader.py -site https://example.blackboard.com -u administrator -b 2021/01/01 -e 2021/03/01 -o d:\bulkarchiveoutput
Mac/Unix:
jsmith@localhost:/$ cd $HOME jsmith@localhost:~$ source ./env/bin/activate (env) jsmith@localhost:~$ python3 auto_archive_downloader.py -site example.blackboard.com -u administrator -b 2021/01/01 -e 2021/03/01 -o /mnt/ad1s0a/bulkarchiveoutput
Descargar una lista de cursos
Este modo necesita un feed-file. El script procesa un archivo con un listado de Course IDs y descargará las copias de seguridad de dichos cursos.
El feed-file es un archivo de texto plano con los ID de los cursos a descargar. Un ID de curso por fila, sin ninguna otra información, delimitador, o cabecera. Por ejemplo,
2021-ENG001
2021-ENG002
2020-MAT005
Es importante usar el Course_ID y no otros valores.
Ahora que ya tenemos el feed-file preparado, invocaremos el script con -f o --file:
c:\> cd %userprofile% c:\users\jsmith> .\env\scripts\activate (env) c:\users\jsmith> py auto_archive_downloader.py -site example.blackboard.com -u administrator -f myinputfile.txt -o d:\bulkarchiveoutput
Utilizando buckets S3
El script puede utilizarse de modo que en vez de descargar a un directorio local, se carguen los archivos directamente a un bucket S3. Necesitarás crear un bucket y una clave de acceso con permisos suficientes para cargar archivos.
Para poder usar el bucket:
- Es necesario exportar AWS Access Key ID y Secret key como variables de entorno utilizando los nombres estándar de AWS.
- El path al bucket se indica con la notación estándar de S3 en lugar del path local. Ejemplo: s3://mybucket/myfolder/
- La barra al final de la dirección del bucket es importante, no la omitas.
Windows:
Utiliza set para exportar las variables de entorno.
c:\> cd %userprofile% c:\users\jsmith> .\env\scripts\activate (env) c:\users\jsmith> set AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX (env) c:\users\jsmith> set AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (env) c:\users\jsmith> py auto_archive_downloader.py -site example.blackboard.com -u administrator -b 2021/01/01 -e 2021/03/01 -o s3://mybucket/myfolder/
Mac /Unix:
Utiliza export si tu shell es BASH. Si utilizas otros shell diferent, consulta la ayuda del shell para conocer qué comando utilizar para exportar las variables.
jsmith@localhost:/$ cd $HOME jsmith@localhost:~$ source ./env/bin/activate (env) jsmith@localhost:~$ export AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX (env) jsmith@localhost:~$ export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (env) jsmith@localhost:~$ python3 auto_archive_downloader.py -site example.blackboard.com -u administrator -b 2021/01/01 -e 2021/03/01 -o s3://mybucket/myfolder/
Este es un extracto traducido del documento original, localizado en: https://blackboard.secure.force.com/apex/btbb_articleview?id=kAE5Y000000kA7OWAU
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.